无法复现R语言dplyr包group_by分组汇总示例结果
问题原因及排查方案
核心原因
你得到的结果与教程预期不符,大概率是你创建的df1数据集和教程中的不一致:
- 行数差异:你的
df1里State列的唯一值只有2个,而教程数据集的State有4个不同取值,group_by(State)后只会生成2个分组,最终summarise得到2行。 - 列数差异:正常
group_by(State) %>% summarise(...)会保留State作为第一列,你只得到1列,可能是代码执行时的异常(比如未正确加载dplyr包导致语法解析错误),或是创建数据集时State列未正确生成。
排查步骤
验证数据集的State列
运行以下代码查看df1中State的唯一值数量:library(dplyr) n_distinct(df1$State) unique(df1$State)如果结果是2,说明你创建的
df1没有包含教程里的4个不同State值,需要重新按照教程生成数据集。检查代码执行完整性
- 确认已加载dplyr包:运行
library(dplyr),如果提示错误说明未安装,先执行install.packages("dplyr")。 - 重新完整执行标准代码(以教程示例数据为准):
# 创建符合教程要求的df1 df1 <- data.frame( State = c("California", "California", "Texas", "Texas", "Florida", "Florida", "New York", "New York"), Sales = c(100, 200, 150, 250, 300, 350, 400, 450) ) # 执行分组汇总 df1 %>% group_by(State) %>% summarise(First_value_sales = first(Sales))
执行后应该得到4行2列的结果:
State列包含4个州,First_value_sales列对应每个州的第一个Sales值。- 确认已加载dplyr包:运行
检查隐性格式问题
比如State列存在大小写差异(如"california"和"California")、首尾空格(如"Texas "和"Texas"),这些会被当成不同分组或导致分组意外合并。可以用trimws(df1$State)去除空格,tolower(df1$State)统一大小写后再查看唯一值。
内容的提问来源于stack exchange,提问作者raga_muffin
相关产品推荐
相关产品推荐

