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

R语言中为秩频率数据框生成mean rank(平均秩)列的实现方法

你要实现的平均秩列可以直接通过rank()函数指定结处理规则实现,无需额外分组计算,代码修改如下:

library(tidyverse)
library(tidytext)
dt <-data.frame(frequency=c(64,58,54,32,29,29,25,17,17,15,12,12,10))
dt %>% 
  arrange(desc(frequency)) %>% 
  mutate(
    rank = row_number(),
    mean_rank = rank(-frequency, ties.method = "average")
  )

这里rank()函数的ties.method = "average"参数会自动将相同frequency的观测值的秩取平均,对frequency取负是为了让排序逻辑和你原代码的降序排列保持一致,计算结果完全符合预期的平均秩效果。

如果你偏好更直观的分组逻辑,也可以用分组取平均的写法实现:

dt %>% 
  arrange(desc(frequency)) %>% 
  mutate(rank = row_number()) %>% 
  group_by(frequency) %>% 
  mutate(mean_rank = mean(rank)) %>% 
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:24:01