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

如何在R语言中优雅添加x列第2-4高值的平均值列?

实现方法

这里有两种简洁优雅的实现方式,都能满足你的需求:

方法一:利用sort函数直接处理

这是最直观的写法,通过降序排序后提取第2-4位的数值再取平均:

df <- df %>% 
  mutate(v.max.mean = mean(sort(x, decreasing = TRUE)[2:4]))

方法二:用slice_max贴合tidyverse风格

如果你习惯tidyverse的操作逻辑,可以用slice_max筛选出前4大的数值,去掉最大值后取平均:

df <- df %>% 
  mutate(v.max.mean = mean(slice_max(., x, n = 4)$x[-1]))

补充说明

  • 两种方法都会给整个数据框新增一列,每一行的取值都是x列第二、第三、第四高值的平均值,和你示例中添加最大值列的逻辑一致。
  • 你设想的max.k函数确实不存在,但上述两种写法都能达到类似的效果,且代码简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:22:40