如何使用 sample_n 从 R 数据框中随机抽取行?


要使用 sample_n 从 R 数据框中随机抽取行,我们可将样本大小直接传入 dplyr 包的 sample_n 函数。例如,如果我们有一个名为 df 的数据框,那么可以通过使用以下命令创建 df 中的 5 行随机样本:

df%>%sample_n(5)

示例 1

考虑一下下方数据框:

 在线演示

x1<-rnorm(20,21,3.24)
x2<-rnorm(20,5,2.1)
df1<-data.frame(x1,x2)
df1

输出

     x1         x2
1  21.17214  4.256648
2  24.41776  4.835844
3  22.57051  5.943711
4  18.80514  3.365967
5  21.49105  1.583063
6  20.04658  8.334448
7  16.03291  5.094798
8  21.71183  3.497276
9  18.27658  6.657804
10 15.75965  3.092517
11 24.15690  3.618473
12 25.91623  4.283104
13 24.65660  3.759834
14 18.80581  6.551064
15 25.15142  2.812932
16 20.48691  6.844323
17 25.56193  5.479819
18 22.22655  4.492731
19 20.56847  7.983841
20 23.24853  5.266284

加载 dplyr 包并在 df1 中随机抽取 10 行:

library(dplyr)
df1%>%sample_n(10)
     x1         x2
1  18.80581  6.551064
2  25.91623  4.283104
3  16.03291  5.094798
4  15.75965  3.092517
5  18.27658  6.657804
6  18.80514  3.365967
7  22.57051  5.943711
8  20.04658  8.334448
9  24.41776  4.835844
10 24.15690  3.618473

示例 2

 在线演示

y1<-sample(0:1,20,replace=TRUE)
y2<-sample(LETTERS[1:5],20,replace=TRUE)
df2<-data.frame(y1,y2)
df2

输出

   y1 y2
1  0  E
2  0  B
3  1  E
4  0  E
5  0  D
6  1  A
7  0  D
8  1  A
9  0  E
10 0  C
11 1  E
12 1  C
13 0  A
14 0  A
15 1  D
16 0  C
17 1  D
18 0  E
19 0  D
20 0  E

在 df2 中随机抽取 10 行:

df2%>%sample_n(10)


   y1 y2
1  0  E
2  0  C
3  1  E
4  1  A
5  0  A
6  1  E
7  0  D
8  0  D
9  0  D
10 0  B

更新于:2021-03-06

448 次浏览

开启你的职业生涯

完成课程,获得认证

开始学习
广告