在R中应用方法缺少参数(缺少参数错误)



我正试图在R中使用apply方法。但我一直收到错误:FUN中的错误(newX[,I],…(:"中缺少参数;b";。

产生错误的代码:

my_data <- data.frame(x1 = 1:5, x2 = 2:6, x3 = 3)
myFunction <- function(a, b, c){
return(a + b + c)
}
results = apply(my_data, 1, myFunction) #this line is producing the error massage

如果我改变";myFunction";至";sum";例如那么就没有错误了。我怎样才能消除这个错误?

函数应更改为

myFunction <- function(x) sum(x)
apply(my_data, 1, myFunction)
#[1]  6  8 10 12 14

此外,使用rowSums,按行求和操作更有效

rowSums(my_data)

或者通过在OP的原始函数中使用lambda/匿名函数单独指定参数

apply(my_data, 1, function(x) myFunction(x[1], x[2], x[3]))

您可以使用mapply:

with(my_data, mapply(myFunction, x1, x2, x3))

还要注意您的数据帧是一个包含3个矢量的列表。可以像标量一样添加向量。

with(my_data, x1 + x2 + x3)

最新更新