【发布时间】:2015-06-22 19:14:19
【问题描述】:
如果满足条件,我正在尝试将各种列添加在一起以将新行添加到数据框 df 的末尾。
SurveyYear State Stratum Plot species pairs males_24 tib
1 2015 CT 12 4 MALL 0 0 1
2 2015 CT 12 4 ABDU 1 2 4
3 2015 CT 12 4 AGWT 1 0 0
4 2015 CT 11 2 ABDU 2 1 2
5 2015 CT 11 2 MALL 0 1 0
6 2015 CT 11 2 ABDU 4 4 7
对于每个分组的 State、Stratum 和 Plot,我想在 df 中添加一行,其中包含对、males_24 和 tib 的总和。这需要由物种群来完成,以制造一个新物种“TODU”。在这种情况下,将所有物种加起来 = ABDU 和 AGWT(实际数据集大约有 8 个物种要加起来,4 个不包括在内)。因此将有 2 个新行(保持所有其他行)添加到 df,它们是:
2015 CT 12 4 TODU 2 2 4
2015 CT 11 2 TODU 6 5 9
我可以很容易地手动添加行,或者使用添加单个列
df[nrow(df) + 1, ] <- c(,)
但是我很难弄清楚如何分组和求和,同时保持数据集的其余部分完好无损,并针对许多变化进行此操作。在 SAS 中,我会使用 proc 排序来执行此操作,但我认为我不需要先使用 R 进行排序。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
如果你想按州、地层、地块和物种分组,然后为它们的每个组合计算对的总和,males_24 和 tib,你不会只得到两行而是 5。跨度>
-
@SabDeM 仅当您包含空集时,请注意只有 2 个唯一的数据组合。
-
@LegalizeIt 对不起,我不明白你的意思。我已经发布了我的解决方案,以向您展示我的想法(但我当然可能错了)意图是。
-
@SabDeM 抱歉,我没有注意到您也将物种作为分组因素。