在R中使用group_by和summarize时保留政党关联信息的问题
解决方法
直接用dplyr的slice_max()函数,按DEPARTAMENTO分组后提取每组VTOTAL最高的行,就能完整保留该地区得票最高政党的所有信息:
ERM2002ganador <- ERMfinalt2002 %>% group_by(DEPARTAMENTO) %>% slice_max(VTOTAL, n = 1, na.rm = FALSE) %>% ungroup() # 可选,取消分组状态
补充说明
slice_max(VTOTAL, n = 1):指定按VTOTAL列取每组最大的1条记录- 如果同一地区有多个政党得票并列最高,把
n改成Inf就能保留所有并列记录
也可以用filter()结合max()实现相同效果:
ERM2002ganador <- ERMfinalt2002 %>% group_by(DEPARTAMENTO) %>% filter(VTOTAL == max(VTOTAL, na.rm = FALSE)) %>% ungroup()
这两种方法都能输出每个区域对应最高得票、政党及TYPE的单条(或并列)记录,符合预期格式。
内容的提问来源于stack exchange,提问作者Aura
相关产品推荐
相关产品推荐

