2016-09-18 74 views
2

我想应用一个函数,以便对于每个循环,函数将从数据集的行中获取新的输入参数,并为每个循环提供单独的结果。对数据帧的每一行重复函数

可以说我有一个这样的数据集:

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) 
} 

我想的Automize以下过程,以便该函数将单独计算资金用于每一行整个数据集:

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 func但是,我无法做到这一点。有人可以给我一个解决方案吗?谢谢。

+0

或者另一种选择是'减少( “+”,DF)' – akrun

+0

如果你想保持原始df:''df%>%mutate(ROWSUM = rowSums(。))完整无缺''' –

回答

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 
相关问题