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

R语言mode()返回"numeric"而非数值?新手求正确获取众数方法

问题解答

为什么mode(MoneyData)返回"numeric"?

R里的mode()函数不是用来计算统计众数的,它的作用是返回对象的存储模式(也就是数据类型)。你用c()创建的MoneyData是数值型向量,所以返回"numeric"是完全正确的结果——你误解了这个函数的用途,它本来就不会返回具体的数值。

如何获取你想要的统计众数?

如果你要的是向量中出现次数最多的数值(统计意义上的众数),R没有内置的众数函数,你可以自己写一个简单的函数实现:

# 定义众数计算函数
get_mode <- function(x) {
  # 生成频率统计表
  freq_table <- table(x)
  # 找出最高出现次数
  max_count <- max(freq_table)
  # 返回对应数值
  as.numeric(names(freq_table[freq_table == max_count]))
}

# 调用函数获取结果
get_mode(MoneyData)

运行这段代码会返回22000,这就是你的MoneyData向量中出现次数最多的数值。

如果你习惯用tidyverse工具包,也可以用dplyr来计算:

library(dplyr)

# 用dplyr管道计算众数
tibble(MoneyData) %>%
  count(MoneyData, sort = TRUE) %>%
  filter(n == max(n)) %>%
  pull(MoneyData)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:52:37