使用包dplyr和函数 sample_frac可以从每个组中采样百分比.我需要的是首先对每个组中的元素进行排序,然后从每个组中选择前x%?
有一个功能 top_n,但在这里我只能确定行数,我需要一个相对值.
例如,以下数据按齿轮分组并按其排序 wt每组内的:
library(dplyr)
mtcars %>%
select(gear, wt) %>%
group_by(gear) %>%
arrange(gear, wt)
gear wt
1 3 2.465
2 3 3.215
3 3 3.435
4 3 3.440
5 3 3.460
6 3 3.520
7 3 3.570
8 3 3.730
9 3 3.780
10 3 3.840
11 3 3.845
12 3 4.070
13 3 5.250
14 3 5.345
15 3 5.424
16 4 1.615
17 4 1.835
18 4 1.935
19 4 2.200
20 4 …Run Code Online (Sandbox Code Playgroud)