假设我有以下数据框:
df <- data.frame(replicate(5,sample(0:1,10,rep=TRUE)))
我将一些功能应用到每一行
apply(df, 1, function(x) sum(x))
如何确保结果按行排列?我希望再次有一个数据帧/向量,其中每行包含相应的和。这是一个相当简单的例子,但我希望它说明了这个问题。谢谢!
答案 0 :(得分:0)
有很多方法可以做到。以下是其中之一:
t(apply(df, 1, function(x){c(x,sum(x))} ))
<强>更新强>
如果函数的结果返回一个df :(我假设一个fn返回一个带有2行的df:row1-数据行,末尾加上&amp; row2-重复第1行
interim_res<- rbind(lapply(as.data.frame(t(df)), function(x){
as.data.frame(rbind(c(x,sum(x)),c(x,sum(x))))
}))
res<- do.call(rbind,interim_res)
答案 1 :(得分:0)
我认为sapply
会简化多个data.frame
rbind
- 所以你可以试试
df <- data.frame(replicate(5,sample(0:1,10,rep=TRUE)))
sapply(t(df), function(x), sum(x))
或者至少它会将它们列入您可以rbind