如何解决将每一列添加到新的数据框中
例如,我有一个包含4列的数据框:
col1 col2 col3 col4
我想通过累加每一列来获得一个新的数据框:
col1 col1+col2 col1+col2+col3 col1+col2+col3+col4
我应该如何用R书写?
解决方法
在基数R中,您可以使用cumsum
来按行计算apply
。
使用@Henry的数据:
startdf[] <- t(apply(startdf,1,cumsum))
startdf
# col1 col2 col3 col4
#1 1 21 321 4321
#2 4 34 234 1234
,
如果这是矩阵,则可以使用rowCumsums
包中的matrixStats
所以从一个数据帧开始,然后返回一个数据帧,我想您可以尝试类似的
library(matrixStats)
startdf <- data.frame(col1=c(1,4),col2=c(20,30),col3=c(300,200),col4=c(4000,1000))
finishdf <- as.data.frame(rowCumsums(as.matrix(startdf)))
出发
col1 col2 col3 col4
1 1 20 300 4000
2 4 30 200 1000
到
V1 V2 V3 V4
1 1 21 321 4321
2 4 34 234 1234
,
R基(不像Ronak的有效或干净)[使用亨利的数据]:
data.frame(Reduce(rbind,Map(cumsum,data.frame(t(startdf)))),row.names = NULL)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。