Одна ошибка, с которой вы можете столкнуться в R:
Error: attempt to apply non-function
Эта ошибка обычно возникает, когда вы пытаетесь умножить значения в R, но забыли включить знак умножения ( * ).
В этом руководстве рассказывается, как именно справиться с этой ошибкой в двух разных сценариях.
Сценарий 1. Устранение ошибки при умножении фрейма данных
Предположим, мы создаем следующий фрейм данных в R:
#create data frame
df <- data.frame(x=c(1, 2, 6, 7),
y=c(3, 5, 5, 8))
#view data frame
df
x y
1 1 3
2 2 5
3 6 5
4 7 8
Теперь предположим, что мы пытаемся создать новый столбец, равный столбцу x, умноженному на 10:
#attempt to create new column
df$x_times_10 <- df$x(10)
Error: attempt to apply non-function
Мы получаем ошибку, потому что забыли включить знак умножения ( * ).
Чтобы устранить эту ошибку, мы должны включить знак умножения:
#create new column
df$x_times_10 <- df$x\*(10)
#view updated data frame
df
x y x_times_10
1 1 3 10
2 2 5 20
3 6 5 60
4 7 8 70
Сценарий 2. Устранение ошибки в векторном умножении
Предположим, мы создаем два вектора в R и пытаемся перемножить их соответствующие элементы:
#create two vectors
x <- c(1, 2, 2, 2, 4, 5, 6)
y <- c(5, 6, 8, 7, 8, 8, 9)
#attempt to multiply corresponding elements in vectors
(x)(y)
Error: attempt to apply non-function
Мы получаем ошибку, потому что мы не включили знак умножения.
Чтобы устранить эту ошибку, мы должны включить знак умножения:
#multiply corresponding elements in vectors
(x)\*(y)
[1] 5 12 16 14 32 40 54
Обратите внимание, что на этот раз ошибка не возникает.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в R:
Как исправить: условие имеет длину > 1 и будет использоваться только первый элемент
Как исправить: нечисловой аргумент бинарного оператора
Как исправить: dim(X) должен иметь положительную длину
Как исправить: ошибка при выборе неиспользуемых аргументов