sample()

ベクトルから任意の数のサンプルを抽出する

ある数字の並び(ベクトル)を対象として、任意の数を標本として抽出したい場合、

sample(ベクトル, 標本数)

という関数が使えます。

> abc <- 1:100     ##abcというオブジェクトに、1から100までの整数ベクトルを定義。
> sample(abc, 5)  ##ベクトルabcから、5個の標本を採る
[1] 54 38 85  5 55
> sample(abc, 15)  ##ベクトルabcから、15個の標本を採る
[1] 53 44 30 34 10 87 35 47 45 84 76 77 16 55 49
> sample(abc, 105)  ##ベクトルabcから、105個の標本(ベクトルの数より多い)を採る
Error in sample.int(length(x), size, replace, prob) :   
cannot take a sample larger than the population when 'replace = FALSE'  ##データ数より多いといって叱られる。

文字でも使えます。

> xyz <- c("a","b","c","d","e")   ##xyzというオブジェクトに、a,b,c,d,eの文字列を定義
> sample(xyz,3)  ##xyzから3個の標本を採る
[1] "d" "a" "b"

金額帯サンプリング

いわゆるMUS(monetary unit sampling)をしたい場合も対応している。

sample(data, size = サンプル数, prob = 金額項目)

とすることで、金額項目に該当する数値でレコードをウェイト付したものをサンプルする。

関連