R-计算每组某些值的四分位数

  • 本文关键字:四分 计算 r quartile
  • 更新时间 :
  • 英文 :


我想创建一个称为百分位数的变量,每个组的四分位数。我有以下数据集,我想创建最后一个变量percentile

  id group value
1  1     1     1
2  2     1     2
3  3     1     3
4  4     1     4
5  5     2    10
6  6     2    20
7  7     2    30
8  8     2    40

以下是预期的结果。

id group value percentile
1  1     1     1
2  1     2     2
3  1     3     3 
4  1     4     4
5  2     10    1
6  2     20    2
7  2     30    3
8  2     40    4

到目前为止,我已经尝试使用库dplyr

尝试了以下内容
df <- df  %>% group_by(group) %>% within(df, percentile <- as.integer(cut(value, quantile(value, probs=0:4/4), 
                                                              include.lowest=TRUE)))

,但似乎不起作用。它不会产生任何称为百分位数的变量,也没有给我一个错误

这是您需要的吗?

> df$percentile = ave(df$value, df$group, FUN=function(x) ecdf(x)(x))

re:如果您想要到4,则可以:

df$percentile = factor(df$percentile)
levels(df$percentile) <- 1:4

相关内容

  • 没有找到相关文章

最新更新