使用dplyr进行分组计数与年龄求和的技术问题
解决dplyr分组求和与计数的问题
我来帮你搞定这个分组统计的问题!你原来的代码有几个语法小问题,我给你修正并解释清楚~
原代码的问题点:
- 没有把数据框
df传入管道,单独写group_by(Name)会找不到数据上下文,必须先指定数据源 summarise的语法错误,括号和逗号的位置不对,而且count(Name)不是在summarise里统计次数的正确方式
正确的实现代码:
library(dplyr) # 你的原始数据 Name <- c("John","Mark","Ella","Mike","Zedd","John","Maria","Nick","John","Nick","Zedd","Andrea") Age <- c(16,25,45,23,26,28,19,20,43,31,33,15) df <- data.frame(Name,Age) # 按Name分组,计算Age总和与出现次数 new_df <- df %>% group_by(Name) %>% summarise( Total_Age = sum(Age), # 每个Name的Age总和 Occurrences = n() # 统计每个Name的出现次数,n()直接返回组内行数 ) # 查看结果 print(new_df)
代码解释:
- 用
df %>%将数据框传入管道操作,确保后续所有函数都基于这个数据源 group_by(Name)指定按Name字段进行分组- 在
summarise中同时生成两个汇总列:Total_Age:用sum(Age)计算每个分组的Age总和Occurrences:用n()直接统计每个分组的行数,也就是对应Name的出现次数,这是dplyr中统计组内数量最简洁的方法
运行后你会得到每个Name对应的年龄总和和出现次数的结果,完全符合你的需求~
内容的提问来源于stack exchange,提问作者CS.py
相关产品推荐
相关产品推荐

