r - 如何对数据框中相似组中的值求和?
问题描述
alpha <- c(11,12,21,24,33,11,33)
group <- c("a", "b", "a", "c", "a", "c","d")
df <- data.frame(group,alpha)
df <- df[with(df, order(group)),]
我想对每个组的值求和并将结果附加到数据框中,但我不知道该怎么做。输出将类似于下面的结果。
group alpha sum
1 a 11 65
2 a 21 65
3 a 33 65
4 b 12 12
5 c 24 35
6 c 11 35
7 d 33 33
解决方案
您可以使用dplyr
withgroup_by
来计算总和,然后join
附加您的原始 data.frame:
alpha <- c(11,12,21,24,33,11,33)
group <- c("a", "b", "a", "c", "a", "c","d")
df <- data.frame(group,alpha)
df <- df[with(df, order(group)),]
library(dplyr)
df_stat <- df %>%
group_by(group) %>%
summarise(sum = sum(alpha))
df <- df %>%
left_join(df_stat)
df
group alpha sum
1 a 11 65
2 a 21 65
3 a 33 65
4 b 12 12
5 c 24 35
6 c 11 35
7 d 33 33
推荐阅读
- amazon-elb - With Apigee Load Balancer why do i need ELB,ALB,NLB, Global Load Balancers
- matlab - 如何计算 2 3 4 50 100 中 k 的 P^k?
- sql - 如何在 BigQuery 中选择包含子字符串的所有列名称?
- android - 无法在联想设备 (Android) 上播放字符串之间有空格的 mp3 文件
- android - Scaling issue while sending push notifications (in bulk) to all the devices subscribed to a topic using FCM
- mysql - 根据年份的条件 MySQL 查询
- android - 保存文件,然后通过邮件发送
- c# - 使用“WlanScan”刷新 WiFi 网络列表(将 api 语法从 c# 转换为 vba ... 或解决方法?)
- ignite - 如何节流/限制缓存存储读取线程?
- regression - 如何修复 MCMChregress 函数中似乎源于 R 参数的错误