如何使用 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 次瀏覽

開啟你的職業生涯

完成課程,獲得認證

開始學習
廣告