r - tapply() 函数依赖于 R 中的多列

标签 r summarization

电话 ,我有一个包含位置、样本年和计数的表。所以,

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

我想要一个汇总表,它检查 'Location' 和 'sample_year' 列,并根据这个独特的组合对 'count' 求和,而不仅仅是单个列。所以,最终结果应该是:
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/

相关文章:

Haskell 总结通过树的所有路径

python - 在python中总结很长的ipv4地址列表

python - 为什么邻接矩阵的特征值实际上是Textrank中的句子分数

R错误: expecting a single value what does it mean?

r - 有效地将命名列表转换为 data.frame

R - 帮助将因子转换为日期 (%m/%d/%Y %H :%M)

c++ - R:使用内联包时的 C++ 优化标志

r - R中同时使用两列的聚合函数

r - 如何在不加载内存文件的情况下以像素为单位获取图像宽度和高度

linux - 与 Linux 中的 Foreach 和 doMC 包并行 - mclapply 出错