在R中按条件求和多行

慢慢来

我知道在R中的条件下如何汇总一列有很多类似的问题。但是我不知何故无法实现该功能aggregatedplyr::group_by(df) %>% summarise(variable = sum(variable))我的数据。合并行并求和它们的值对我没有帮助。但是也许可以吗?我想合并和总结R中data.frame的行。

df <- data.frame(file=c('sample1','sample1','sample2','sample3','sample2'),gene1=c(34,365,76,0,4),gene2=c(34,0,0,456,0))
> df
     file gene1 gene2
1 sample1    34    34
2 sample1   365     0
3 sample2    76     0
4 sample3     0   456
5 sample2    4      0

输出应如下所示

 file gene1 gene2
1 sample1    399    34
2 sample2    80     0
3 sample3     0   456

K

基地,你可以使用rowsum按组总结行

rowsum(df[-1], df[,1])
#        gene1 gene2
#sample1   399    34
#sample2    80     0
#sample3     0   456

或使用aggregate

aggregate(.~file, df, sum)
#     file gene1 gene2
#1 sample1   399    34
#2 sample2    80     0
#3 sample3     0   456

或使用by

do.call(rbind, by(df[-1], df[,1], colSums))
#        gene1 gene2
#sample1   399    34
#sample2    80     0
#sample3     0   456

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章