R语言:保留数据集结构,基于糕点类型计算Total列
解决方案
不用aggregate的话,用dplyr的组合操作就能完美保持现有结构,有两种常用方法:
方法1:先生成汇总表,再关联总合数据
假设你的原数据集叫pastry_data,已经生成的汇总表叫pastry_summary:
- 先从原数据计算每种糕点的Volume总合:
pastry_totals <- pastry_data %>% group_by(type_of_pastry) %>% summarize(Total = sum(Volume))
- 用
left_join把总合数据关联到你的汇总表上,完全保留原有结构:
pastry_summary <- pastry_summary %>% left_join(pastry_totals, by = "type_of_pastry")
方法2:一步生成带Total列的汇总表
直接在生成汇总表的流程里同时计算Total,更高效:
pastry_summary <- pastry_data %>% # 先按糕点类型分组,计算该类型的Volume总合 group_by(type_of_pastry) %>% mutate(Total = sum(Volume)) %>% # 再按糕点类型+过敏原分组,统计数量,同时保留Total列 group_by(type_of_pastry, allergen, Total) %>% summarize(n = n(), .groups = "drop")
两种方法都不会改变你原来汇总表的核心结构(保留type_of_pastry、allergen、n列),只是新增Total列,完全符合你的需求。
内容的提问来源于stack exchange,提问作者resayhello again
相关产品推荐
相关产品推荐

