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

R语言如何返回列或变量中频数最高的因子水平名称

方法1:Base R 原生实现

你可以直接组合names()和which.max()函数实现需求,不需要安装任何第三方包:

var <- c("A","A","A","A","B","B","B","B","B","B","C","C","C")
# 直接返回频数最高的水平名称
names(which.max(table(var)))

运行上述代码会直接输出"B"。

如果存在多个水平频数并列最高的情况,which.max()只会返回第一个出现的最高值,你可以用以下逻辑返回所有并列最高的水平:

freq_table <- table(var)
# 返回所有频数等于最大值的水平
names(freq_table[freq_table == max(freq_table)])

方法2:dplyr 语法实现

如果你习惯使用tidyverse生态的工具,可以用count()配合slice_max()实现:

library(dplyr)
as.data.frame(var) %>% 
  count(var) %>% 
  # with_ties = TRUE 时会返回所有并列最高的水平,设为FALSE则仅返回第一个
  slice_max(n = 1, order_by = n, with_ties = TRUE) %>% 
  pull(var)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:36:11