相关疑难解决方法(0)

按组获取最高值

这是一个示例数据框:

d <- data.frame(
  x   = runif(90),
  grp = gl(3, 30)
) 
Run Code Online (Sandbox Code Playgroud)

我想要d包含x每个值的前5个值的行的子集grp.

使用base-R,我的方法是这样的:

ordered <- d[order(d$x, decreasing = TRUE), ]    
splits <- split(ordered, ordered$grp)
heads <- lapply(splits, head)
do.call(rbind, heads)
##              x grp
## 1.19 0.8879631   1
## 1.4  0.8844818   1
## 1.12 0.8596197   1
## 1.26 0.8481809   1
## 1.18 0.8461516   1
## 1.29 0.8317092   1
## 2.31 0.9751049   2
## 2.34 0.9269764   2
## 2.57 0.8964114   2
## 2.58 0.8896466   2 …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table

76
推荐指数
4
解决办法
7万
查看次数

标签 统计

data.table ×1

dplyr ×1

r ×1