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

R语言如何获取table频数统计最大值及对应分类名称

R语言获取table频数最大值对应分类名的实现方法

核心方案

直接用which.max()定位最大值在table结果中的索引,再从table的名称属性中提取对应的分类值即可,不需要额外加载第三方包。
针对你的示例代码,完整可运行写法:

# 生成频数表
x <- table(Car_DataSet_no_na$Dealer)
# 定位最大值位置
max_pos <- which.max(x)
# 提取对应经销商名称
top_dealer <- names(x)[max_pos]
# 提取对应频数值
top_freq <- unname(x[max_pos])
# 拼接为字符串结果
output_str <- paste0("最高频数经销商:", top_dealer, ",频数:", top_freq)

运行后output_str的结果为字符串格式:

[1] "最高频数经销商:Anny,频数:870"

并列最大值处理

如果存在多个经销商频数相同且都是最大值的场景,which.max()只会返回排序在最前的第一个最大值条目。如果需要输出所有并列最高的条目,用逻辑筛选即可:

# 筛选所有频数等于最大值的条目
max_subset <- x[x == max(x)]
# 拼接所有结果
output_all <- paste(names(max_subset), unname(max_subset), sep = ":", collapse = "、")

比如当Anny和David的频数都是870时,输出结果为:

[1] "Anny:870、David:870"

注意点

  • table对象本质是带名称属性的数值向量,直接用max(x)只能拿到数值本身,无法关联对应的分类名,必须结合名称索引取值
  • 不建议用反复匹配最大值的写法替代which.max()做单最大值提取,前者在数据量较大时运算效率更低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:06:29