【发布时间】:2021-09-18 14:48:24
【问题描述】:
我还是 R 新手,所以如果这是基本问题,请原谅。 我有以下数据框:
df <- data.frame(a=c(2,4,6,8), x = c(1,0,0,0), y=c(0,1,0,0), z=c(0,0,0,1))
> df
a x y z
1 2 1 0 0
2 4 0 1 0
3 6 0 0 0
4 8 0 0 1
我将函数 sumfunc 定义为
sumfunc <- function(a,x,y,z){a*2+x+y-z}
所以每一行都有输入 a、x、y、z,我期待一个包含 4 个元素的向量。
- 元素 1 = 5 (2*2+1+0-0)
- 元素 2 = 9 (4*2+0+1-0)
- 元素 3 = 12(6*2+0+0-0)
- 元素 4 = 15 (8*2+0+0-1)
我尝试过使用
abc <- lapply(df$a, FUN=sumfunc, x=df$x, y=df$y, z=df$z)
但这并没有给我想要的输出。请建议应用家庭功能适合我的用例。
非常感谢!
【问题讨论】: