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

R语言计算数据框每行均值和中位数结果异常问题咨询

核心问题有两个
  • apply函数处理范围错误
    你的数据集第一列student是字符类型,apply(my_data, 1, ...)按行提取数据时,会强制将整行转换为字符类型,排序、统计都按字符字典规则执行,结果不符合数值计算预期。此外你先新增的median列也会被后续计算均值的apply函数纳入计算范围,进一步导致结果失真。
  • 手动调用median的语法错误
    median()的核心入参是单个数值向量,你直接传入多个逗号分隔的数值时,只有第一个数值11.22369会被识别为待计算的输入,其余参数会被直接忽略,因此得到错误结果11.22。正确的手动计算写法需要将数值封装为向量:
median(c(11.22369, 15.36253, 16.90215, 20.20724, 15.90227, 15.14539, 13.74945, 18.30090, 19.55124, 17.24132))
正确实现代码

仅选择跑步成绩的数值列计算即可,两种常用写法如下:

基础R写法

# 仅选取第2到第11列的跑步成绩计算行统计值
my_data$my_median <- apply(my_data[, 2:11], 1, median, na.rm = TRUE)
my_data$my_mean <- apply(my_data[, 2:11], 1, mean, na.rm = TRUE)

dplyr更稳妥写法(无需手动指定列号)

library(dplyr)
my_data <- my_data %>%
  rowwise() %>%
  mutate(
    my_median = median(c_across(ends_with("_run")), na.rm = TRUE),
    my_mean = mean(c_across(ends_with("_run")), na.rm = TRUE)
  ) %>%
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:24:02