如何修复 r: 错误: 尝试应用非函数


在 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

  xy
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

  xy 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) 必须具有正长度
如何修复:选择未使用的参数时出错

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注