【发布时间】:2020-02-24 11:35:25
【问题描述】:
我有一个数据框,其中包含物种种群及其在每个种群中的丰度。我想添加另一列,其中包含每个物种的 ID。种群列从 1 向上增加,并在每次出现新物种时重新设置。因此,物种 ID 列将沿物种种群列计数,并且每次种群列重置为“1”时值增加 +1。
我了解我想要达到的原理,但到目前为止未能获得正确的结果。我在下面包含一个虚拟示例,其中包含 2 个物种的种群和计数:
df <- data.frame(Count=c(10, 5, 4, 10, 6),
Population=c(1, 2, 3, 1, 2))
Count Population
10 1
5 2
4 3
10 1
6 2
期望的结果是:
Count Population species
10 1 1
5 2 1
4 3 1
10 1 2
6 2 2
根据 df$Population 中的值每次重置为 1 生成新的物种 ID 列。实际上,数据集包含数百个物种,每个物种的种群数量都不同。
提前感谢您的任何建议。如果问题或示例不清楚,请提前道歉。
迈克
【问题讨论】:
-
我想你只需要
cumsum(df$Population == 1)。
标签: r dataframe if-statement counter