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

R语言优先采用dplyr实现含缺失值列的逐列条件均值统计

Dplyr 实现方案

完全可以生成符合规则的列均值汇总表。base::mean()搭配na.rm = TRUE参数的计算逻辑,和题目要求的规则完全匹配:无需逐列提前判断列内是否存在NA,参数生效后会自动跳过空值计算有效值的均值,列内无空值时正常计算全列均值,等效于先通过na.exclude剔除空值再运算的逻辑。

核心实现(适配dplyr 1.0.0及以上新版本)

library(dplyr)

df %>%
  summarise(
    # 批量对所有列计算均值,自动重命名为`mean_原列名`格式
    across(everything(), ~mean(.x, na.rm = TRUE), .names = "mean_{.col}")
  )

输出结果

mean_num1 mean_num2 mean_num3
1         2         5        11

逐列校验计算逻辑和规则完全一致:

  • num1列无空值:直接计算全列均值 (1+2+3)/3 = 2
  • num2列无空值:直接计算全列均值 (4+5+6)/3 = 5
  • num3列含空值:排除NA后计算有效值均值 (10+12)/2 = 11

旧版dplyr兼容写法(1.0.0以下版本)

针对不支持across()函数的低版本dplyr,可用等价实现:

df %>%
  summarise_all(~mean(., na.rm = TRUE)) %>%
  setNames(paste0("mean_", names(.)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 21:45:02