概要
dplyr
パッケージに含まれるsample_n(), sample_frac()
は、ランダムサンプリングを行う関数です。
# 指定した件数の行を抽出する
sample_n(tbl, size, replace = FALSE, weight = NULL)
# 指定した割合の行を抽出する
sample_frac(tbl, size = 1, replace = FALSE, weight = NULL)
引数 | 指定 | 説明 |
---|---|---|
tbl | 必須 | テーブルを指定する |
size | 必須 | 抽出する件数(行数または割合)を指定する |
replace | 任意 | 復元抽出か非復元抽出を指定する デフォルト(FALSE)の場合は非復元抽出を行います |
weight | 任意 | 重み付けする列を指定する 未指定の場合は全ての行が等しい確率で抽選します |
関連ページ
具体例
## テーブルの作成
tbl <- tibble(
x1 = c('A', 'B', 'C', 'D', 'E'),
x2 = c(1, 2, 3, 4, 5)
)
## テーブルの確認
tbl
# x1 x2
# <chr> <dbl>
# A 1
# B 2
# C 3
# D 4
# E 5
# 1-1.件数を指定して抽出する
sample_n(tbl, size = 3)
# x1 x2
# <chr> <dbl>
# B 2
# C 3
# D 4
# 1-2.割合を指定して抽出する
sample_frac(tbl, size = 0.6)
# x1 x2
# <chr> <dbl>
# C 3
# B 2
# E 5
## 2.復元抽出
sample_n(tbl, size = 10, replace = TRUE)
# x1 x2
# <chr> <dbl>
# C 3
# B 2
# D 4
# A 1
# C 3
# C 3
# E 5
# B 2
# A 1
# C 3
## 3.重み付け
sample_n(tbl, size = 10, replace = TRUE, weight = x2)
# x1 x2
# <chr> <dbl>
# E 5
# D 4
# E 5
# B 2
# D 4
# C 3
# E 5
# D 4
# E 5
# E 5