如何在R DataFrame中按名称列分组求和对应数值
R数据框分组求和实现方法
原始数据结构
| Names Column | A Value |
|---|---|
| Some words | 1 |
| Other words | 6 |
| Different words | 3 |
| Some words | 2 |
| Other words | 2 |
| Different words | 1 |
目标结果
| Names Column | A Value |
|---|---|
| Some words | 3 |
| Other words | 8 |
| Different words | 4 |
下面是三种常用的实现方式:
1. 基础R内置函数aggregate()
无需额外安装包,直接用原生函数处理:
# 假设你的数据框名为df sum_result <- aggregate(`A Value` ~ `Names Column`, data = df, FUN = sum) print(sum_result)
2. dplyr包(tidyverse生态)
语法更直观,适合日常数据处理:
# 未安装dplyr的话先执行:install.packages("dplyr") library(dplyr) sum_result <- df %>% group_by(`Names Column`) %>% summarise(`A Value` = sum(`A Value`)) %>% ungroup() # 可选,移除分组标记 print(sum_result)
3. data.table包(高效处理大数据)
针对大规模数据的高性能解决方案:
# 未安装data.table的话先执行:install.packages("data.table") library(data.table) # 转换为data.table格式 dt <- as.data.table(df) sum_result <- dt[, .(`A Value` = sum(`A Value`)), by = `Names Column`] print(sum_result)
内容的提问来源于stack exchange,提问作者fsr_j
相关产品推荐
相关产品推荐

