【问题标题】:find top n% and then find averages of the top n% per groupid in R [duplicate]找到前 n%,然后在 R [重复] 中找到每个 groupid 的前 n% 的平均值
【发布时间】:2016-11-19 03:31:17
【问题描述】:

请原谅我的英语。我尝试在 SQL 中执行此操作,但无济于事。这在 R 中可能吗?

我正在尝试:

找到每个 groupid 的前 10% 的分数,然后按 groupid 找到这 10% 的分数的平均值

样本数据:

表格名称:点数

groupid score group_001 13 group_001 12 group_001 10 group_001 12 ... group_002 12 group_002 16 group_002 19 group_002 20 group_002 12 group_002 13 ... group_003 29 group_003 21 group_003 18 ...

...

这可能吗?提前致谢。

【问题讨论】:

    标签: r


    【解决方案1】:

    使用dplyr 包并假设您的数据框名为dat

    library(dplyr)
    
    dat %>% group_by(groupid) %>% 
       filter(percent_rank(score)>=0.9) %>% 
       summarise(mean_top10pct=mean(score))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多