Jak naprawić: błąd w fun(newx[, i], …): typ argumentu „(znak)


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

 Error in sum(x): invalid 'type' (character) of argument

Ten błąd występuje, gdy próbujesz wykonać operację matematyczną (np. pobranie sumy, średniej, liczby itp.) na wektorze znakowym.

W tym samouczku wyjaśniono, jak w praktyce rozwiązać ten błąd.

Jak odtworzyć błąd

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
                 points=c(10, 12, 15, 20, 26, 25),
                 rebounds=c(7, 8, 8, 14, 10, 12))

#view data frame
df

  team points rebounds
1 to 10 7
2 to 12 8
3 to 15 8
4 B 20 14
5 B 26 10
6 B 25 12

Załóżmy teraz, że próbujemy obliczyć sumę kolumny „zespół”:

 #attempt to calculate sum of values in 'team' column
sum(df$team)

Error in sum(df$team): invalid 'type' (character) of argument

Otrzymujemy błąd, ponieważ kolumna „zespół” jest kolumną znakową.

Możemy to potwierdzić za pomocą funkcji class() :

 #view class of 'team' column
class(df$team)

[1] “character”

Jak naprawić błąd

Sposobem na obejście tego błędu jest stosowanie wyłącznie operacji matematycznych na wektorach numerycznych.

Na przykład moglibyśmy użyć funkcji sum() do obliczenia sumy wartości w kolumnie „punkty”:

 #calculate sum of values in 'points' column
sum(df$points)

[1] 108

Możemy również obliczyć sumę wartości punktowych pogrupowanych według drużyn:

 #calculate sum of points, grouped by team
aggregate(points ~ team, df, sum)

  team points
1 to 37
2 B 71

Moglibyśmy nawet obliczyć sumę wartości punktów i zbiórek pogrupowanych według drużyn:

 #calculate sum of points and sum of rebounds, grouped by team
aggregate(.~team, df, sum)

  team points rebounds
1 A 37 23
2 B 71 36

Należy pamiętać, że przy żadnej z tych operacji nie pojawia się błąd, ponieważ próbujemy jedynie obliczyć sumę zmiennych numerycznych.

Dodatkowe zasoby

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

Jak naprawić: warunek ma długość > 1 i zostanie użyty tylko pierwszy element
Jak naprawić: nienumeryczny argument operatora binarnego
Jak naprawić: dim(X) musi mieć dodatnią długość
Jak naprawić: błąd podczas wybierania nieużywanych argumentów

Dodaj komentarz

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