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

R语言按分组对数值列算中位数、字符列算众数的实现方法

R语言按分组对不同类型变量批量统计的高效实现方案

用dplyr的跨列操作函数across()实现批量统计,无需手动逐列写统计逻辑,适配任意列数的数据集,核心实现如下:

  1. 加载依赖包
# 未安装dplyr的话先执行安装:install.packages("dplyr")
library(dplyr)
  1. 自定义众数计算函数(R基础包无内置众数函数)
# 规则:返回出现次数最多的值,平票时取第一个出现的值,可兼容处理缺失值
get_mode <- function(x, rm_na = TRUE) {
  if(rm_na) x <- na.omit(x)
  freq <- table(x)
  names(freq)[which.max(freq)]
}
  1. 核心分组统计代码
original2 <- original %>%
  # 按group字段分组
  group_by(group) %>%
  summarise(
    # 批量处理所有数值列,计算中位数,有缺失值可加na.rm=TRUE参数
    across(all_of(numeric), \(x) median(x, na.rm = TRUE)),
    # 批量处理所有剔除id后的字符列,计算众数
    across(all_of(char), get_mode)
  ) %>%
  ungroup()

上述代码会自动适配所有符合条件的列,新增列只要属于你提前定义的numeric/char向量范围,不需要修改统计逻辑就能自动纳入计算,完全适配多列的业务数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:36:00