假设我有以下数据:
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通过的组合定义的组内grpvar1和grpvar2.
使用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)
| 归档时间: |
|
| 查看次数: |
14948 次 |
| 最近记录: |