r - 根据另一列中的值聚合一列中的数据

标签 r dataframe aggregate

我知道有一个简单的方法可以做到这一点......但是,我无法弄清楚。

我的 R 脚本中有一个数据框,如下所示:

A      B    C
1.2    4    8
2.3    4    9
2.3    6    0
1.2    3    3
3.4    2    1 
1.2    5    1

请注意,A、B 和 C 是列名称。我正在尝试获取这样的变量:

sum1 <- [the sum of all B values such that A is 1.2]
num1 <- [the number of times A is 1.2]

有什么简单的方法可以做到这一点吗? 我基本上希望得到一个如下所示的数据框:

    A     num     totalB
   1.2    3       12
   etc    etc     etc

其中“num”是特定 A 值出现的次数,“totalB”是给定 A 值的 B 值的总和。

最佳答案

我会使用aggregate来获取两个聚合,然后将它们合并到一个数据帧中:

> df
    A B C
1 1.2 4 8
2 2.3 4 9
3 2.3 6 0
4 1.2 3 3
5 3.4 2 1
6 1.2 5 1

> num <- aggregate(B~A,df,length)
> names(num)[2] <- 'num'

> totalB <- aggregate(B~A,df,sum)
> names(totalB)[2] <- 'totalB'

> merge(num,totalB)
    A num totalB
1 1.2   3     12
2 2.3   2     10
3 3.4   1      2

关于r - 根据另一列中的值聚合一列中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560671/

相关文章:

r - 使用 blogdown 后 Hugo 不读取 .Rmd 文件

c - 失败,错误为 : ‘‘operator’ is not a valid installed package

python - 替换数据框 MultiIndex 上的操作

r - R中潜在狄利克雷分配(LDA)中特定TOPIC的TERM概率是多少

r - 如何在 R 中编写生成 Pig Latin 的函数

python - 如何使用 Python 将学生 ID 列表从 CSV 转换为电子邮件地址?

python - Pandas 基于索引/列组合合并 DataFrame

mysql - 将聚合字符串函数与子查询结合使用

sql - PostgreSQL Distinct 和 Format 的最快方法

pandas groupby 聚合,总和在底部