我有一个数据框,其中一列是物种名称,第二列是丰度值。由于采样程序的原因,某些物种出现多次(即,其中有不止一排物种 X)。我想合并这些条目并总结它们的丰富性。
例如,给定这个数据框:
set.seed(6)
df=data.frame(
x=c("sp1","sp2","sp3","sp3","sp4","sp2","sp3"),
y=rpois(7,2)); df
其产生:
x y
1 sp1 2
2 sp2 4
3 sp3 1
4 sp3 1
5 sp4 3
6 sp2 5
7 sp3 5
我想改为生产:
x y
1 sp1 2
2 sp2 9 (5+4)
3 sp3 7 (5+1+1)
5 sp4 3
预先感谢您提供的任何帮助!
这有效:
library(plyr)
ddply(df,"x",numcolwise(sum))
换言之:(1)分割数据框df
by the "x"
柱子; (2) 对于每个块,取每个数值列的总和; (3) 将结果粘贴回单个数据框中。 (dd
in ddply
代表“采取data帧作为输入,返回adata 框架”)
另一种可能更清晰的方法:
aggregate(y~x,data=df,FUN=sum)
See 构建均值/方差汇总表的快速/优雅的方法 https://stackoverflow.com/questions/7449198/quick-elegant-way-to-construct-mean-variance-summary-table对于一个相关的(稍微复杂的)问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)