Jak naprawić: błąd w strsplit(specyfikacja jednostki, ” „): argument bez znaku


Błąd, który możesz napotkać w R to:

 Error in strsplit(df$my_column, split = "1"): non-character argument 

Ten błąd zwykle występuje, gdy próbujesz użyć funkcji strsplit() w R do podzielenia łańcucha, gdy obiekt, z którym pracujesz, nie jest ciągiem.

W tym samouczku dokładnie wyjaśniono, jak naprawić ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą ramkę danych w R:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C'),
                 dots=c(91910, 14015, 120215))

#view data frame
df

  team points
1 A 91910
2 B 14015
3 C 120215

Załóżmy teraz, że spróbujemy użyć funkcji strsplit() do podzielenia wartości w kolumnie „punkty” w oparciu o to, gdzie pojawia się cyfra 1:

 #attempt to split values in points column
strsplit(df$points, split="1")

Error in strsplit(df$points, split = "1"): non-character argument

Otrzymujemy błąd, ponieważ zmienna „punkty” nie jest znakiem.

Możemy to potwierdzić sprawdzając klasę tej zmiennej:

 #display class of "points" variable
class(df$points)

[1] "digital"

Widzimy, że zmienna ta ma klasę numeryczną.

Jak naprawić błąd

Sposobem na naprawienie tego błędu jest użycie funkcji as.character() w celu przekonwertowania zmiennej „punkty” na znak przed próbą użycia funkcji strsplit() :

 #split values in points column based on where 1 appears
strsplit(as. character (df$points), split="1")

[[1]]
[1990"

[[2]]
[1] "" "40" "5" 

[[3]]
[1] "" "202" "5"

Tym razem pomyślnie podzieliliśmy każdą wartość w kolumnie „punkty”, ponieważ najpierw użyliśmy funkcji as.character() do konwersji „punktów” na znak.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:

Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: więcej kolumn niż nazw kolumn
Jak naprawić w R: wymiana ma X wierszy, dane mają Y

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *