You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中如何按分组提取对应列出现频次最高的条目

R按指定列分组后提取其他列最高频条目的实现方法

基于你现有代码的后续补全方案

你已经完成了分组计数的步骤,后续只需要对计数结果按频次排序,每组取最高频的条目即可,完整代码如下:

library(dplyr)

df %>%
  group_by(Name) %>%
  count(City, name = "freq") %>% # 统计每个Name下各City的出现次数
  arrange(desc(freq)) %>% # 按频次降序排序
  slice(1) %>% # 提取每组的第一行,即频次最高的条目
  ungroup() %>% # 按需选择是否取消分组结构
  select(-freq) # 按需选择是否删除计数列,最终保留Name和最高频City两列

如果存在同个Name下多个City频次相同的平局场景,需要返回所有并列最高的条目,可将slice(1)替换为filter(freq == max(freq))。

更简洁的一步到位写法

无需单独先做计数,可以直接在分组汇总时计算最高频City:

library(dplyr)

df %>%
  group_by(Name) %>%
  summarise(City = names(which.max(table(City))))

两种写法运行你的示例数据集,都会得到你需要的输出结果:

NameCity
ANew York
BChicago

内容的提问来源于stack exchange,提问作者dlwhch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:27:03