问题描述
我想在引用R中数据框中多个列的所有行上应用一个函数.例如,如果我有一个名为"data"的数据框,其中包含三个变量"var1","var2"和"var3",而我想对每行应用一个函数:
I want to apply a function over all rows referencing multiple columns in a data frame in R. So, for example, if I have a data frame called "data" with three variables "var1", "var2", and "var3" and I want to apply a function to each row:
myfunc <- function(var1, var2, var3)){
result <- var1*var2*var3
return(result)
}
那么伪代码将是:
apply(data, myfunc(data$var1, data$var2, data$var3))
但是,此代码不起作用,因为数据是一个数据帧,而不是一个向量,并且lapply似乎不能采用多个向量.我该如何工作?我可以接受任何类型的解决方案,但是我必须能够引用多个变化的参数并调用预定义的函数.
This code does not work, however, because data is a data frame, not a vector, and lapply does not seem able to take more than one vector. How do I make this work? I am open to any type of solution, but I have to be able to reference multiple changing arguments and call a predefined function.
推荐答案
无需应用
:
#define function
myfunc <- function(var1, var2, var3){
result <- var1*var2*var3
return(result)
}
#dummy data
dat <- data.frame(A=c(1,2,3),B=c(4,5,6),C=c(7,8,9))
#test function
myfunc(dat$A,dat$B,dat$C)
#output
[1] 28 80 162
这篇关于在R中使用多个更改参数应用函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!