R 中,我有一个带有Location,sample_year和count的表。所以,

Location sample_year count
A        1995        1
A        1995        1
A        2000        3
B        2000        1
B        2000        1
B        2000        5

我想要一个汇总表,该表既检查“位置”列又检查“sample_year”列,并对依赖于此唯一组合的“计数”求和,而不只是一个列。因此,最终结果应为:
Location sample_year sum_count
A        1995        2
A        2000        3
B        2000        7

我可以将列和数据合并到一个新列中,以创建唯一的Location-sample_year,但这不是一个干净的解决方案,尤其是当我需要将其扩展到三列时。必须有更好的方法。

最佳答案

您可以将aggregate与公式配合使用。

首先数据:

x <- read.table(textConnection("Location sample_year count
A        1995        1
A        1995        1
A        2000        3
B        2000        1
B        2000        1
B        2000        5"), header = TRUE)

使用sum加上指定分组的公式进行汇总:
aggregate(count ~ Location+sample_year, data = x, sum)
    Location sample_year count
1        A        1995     2
2        A        2000     3
3        B        2000     7

关于r - tapply()函数取决于R中的多个列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5216015/

10-13 02:22