使用dplyr :: percent_rank()计算组内的百分位数

Bra*_*ium 9 r dplyr

假设我有以下数据:

id    grpvar1    grpvar2    value
1     1          3          7.6
2     1          2          4
...
3     1          5          2
Run Code Online (Sandbox Code Playgroud)

对于每一个id,我要计算percent_rank()value通过的组合定义的组内grpvar1grpvar2.

使用data.table,我会去(假设我的数据是在一个data.frame被调用的dataf:

library(data.table)

# Make dataset into a data.table.
dt <- data.table(dataf)

# Calculate the percentiles.
dt[, percrank := rank(value)/length(value), by = c("grpvar1", "grpvar2")]
Run Code Online (Sandbox Code Playgroud)

相当于dplyr什么?

akr*_*run 10

尝试:

 library(dplyr)
 dataf %>%
 group_by(grpvar1, grpvar2) %>% 
 mutate(percrank=rank(value)/length(value))
Run Code Online (Sandbox Code Playgroud)