我想应用一个函数,这样每个循环函数都会从数据集的行中获取新的输入参数,并为每个循环提供单独的结果。
假设我有一个这样的数据集:
df<-data.frame(A = 7:11, B = 1:5, C = 4:8, D = 10:14)
功能:
loop<-function(a,b,c,d){
sm <- sum(a,b,c,d)
return(sm)
}
我想自动化以下过程,以便该函数将分别计算整个数据集的每一行的总和:
loop (df[1,1],df[1,2],df[1,3],df[1,4])
loop (df[2,1],df[3,2],df[3,3],df[3,4])
loop (df[3,1],df[3,2],df[3,3],df[3,4])
loop (df[4,1],df[4,2],df[4,3],df[4,4])
loop (df[5,1],df[5,2],df[5,3],df[5,4])
我尝试使用apply
函数,但是,我不能正确地执行此操作。有人可以告诉我一个解决方案吗?谢谢。
答案 0 :(得分:4)
使用rowSums
rowSums(df)
#[1] 22 26 30 34 38
如果您仍想使用loop
功能,请尝试使用
mapply(loop,df[,1],df[,2],df[,3],df[,4])
#[1] 22 26 30 34 38