Rでデータのサンプリング
最近、初めてRを使ってサンプリングしたのでメモします。
テストデータ
以前使ったデータを使います。
> testdata gender blood.type age 1 male B 26 2 female A 43 3 male B 23 4 female A 48 5 male AB 37 6 male A 39 7 male O 38 8 male B 33 9 female A 42 10 male AB 33
この10行のデータのうち、半分(5行)を無作為に抽出します。
サンプリング
抽出対象の行番号を生成
サンプリングするにはsample()関数を利用します。
> sNum <- sample(1:nrow(testdata), nrow(testdata)/2) > sNum [1] 3 10 1 2 6
nrow()でデータの行数を取得可能なので、1~10の範囲:1:nrow(testdata)で、5つの整数:nrow(testdata)/2を無作為に発生させています。
データのサンプリング
サンプリング自体は1行で書けます。
> sampledata <- testdata[sNum,] > sampledata gender blood.type age 3 male B 23 10 male AB 33 1 male B 26 2 female A 43 6 male A 39
testdata[sNum,]で発生させた数字に対応する行番号のデータを抽出できます。
短いですが以上です。