我想对引用 R 数据框中的多列的所有行应用一个函数。例如,如果我有一个名为“data”的数据框,其中包含三个变量“var1”、“var2”和“var3”并且我想对每一行应用一个函数:
myfunc <- function(var1, var2, var3)){ result <- var1*var2*var3 return(result) }
那么伪代码将是:
apply(data, myfunc(data$var1, data$var2, data$var3))
然而,这段代码不起作用,因为 data 是一个数据帧,而不是一个向量,并且 lapply 似乎无法获取多个向量。我该如何进行这项工作?我对任何类型的解决方案持开放态度,但我必须能够引用多个不断变化的参数并调用预定义的函数。
您似乎相当接近,但在通话中您遗漏了一些内容。
apply(data, 1, function(x,y,z) myfunc(data$var1,data$var2,data$var3))
似乎可以解决问题。
编辑:我在数据集上测试了这个
data<-data.frame(a=c(1,2,3),b=c(4,5,6),c=c(7,8,9))
并得到输出
[,1] [,2] [,3] [1,] 28 28 28 [2,] 80 80 80 [3,] 162 162 162