Как исправить: ошибка в fun(newx[, i],…): тип аргумента ' (символ)


Ошибка, с которой вы можете столкнуться в R:

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

Эта ошибка возникает при попытке выполнить математическую операцию (например, получение суммы, среднего значения, числа и т. д.) над вектором символов.

В этом руководстве объясняется, как устранить эту ошибку на практике.

Как воспроизвести ошибку

Предположим, мы создаем следующий кадр данных в 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

Теперь предположим, что мы пытаемся посчитать сумму столбца «команда»:

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

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

Мы получаем ошибку, поскольку столбец «команда» является столбцом символов.

Мы можем подтвердить это с помощью функции class() :

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

[1] “character”

Как исправить ошибку

Чтобы обойти эту ошибку, используйте только математические операции с числовыми векторами.

Например, мы могли бы использовать функцию sum() для расчета суммы значений в столбце «точки»:

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

[1] 108

Мы также могли бы рассчитать сумму значений очков, сгруппированных по командам:

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

  team points
1 to 37
2 B 71

Мы могли бы даже вычислить сумму очков и подборов, сгруппированных по командам:

 #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

Обратите внимание: ни при одной из этих операций мы не получаем ошибок, поскольку пытаемся вычислить только сумму числовых переменных.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в R:

Как исправить: длина условия > 1 и будет использоваться только первый элемент
Как исправить: нечисловой аргумент бинарного оператора
Как исправить: dim(X) должен иметь положительную длину
Как исправить: ошибка при выборе неиспользуемых аргументов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *