行の抽出

概要

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
Sponsored Link