R でランダム サンプルを選択する方法: 例付き


R でランダムなサンプルを選択するには、次の構文を使用するsample()関数を使用できます。

サンプル(x, サイズ, replace=FALSE, prob=NULL)

金:

  • x:選択する要素のベクトル。
  • サイズ:サンプルサイズ。
  • replace:置換してサンプリングするかどうか。デフォルト値は false です。
  • prob:ベクトルから要素を取得するための確率の重みのベクトル。デフォルトは NULL です。

このチュートリアルでは、この関数を使用して、ベクトルとデータ フレームの両方から R のランダム サンプルを選択する方法を説明します。

例 1: ベクトルからのランダムなサンプル

次のコードは、置換せずにベクトルからランダムなサンプルを選択する方法を示しています。

 #create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements without replacement
sample(x=data, size=5)

[1] 10 12 5 14 7

次のコードは、置換を使用してベクトルからランダムなサンプルを選択する方法を示しています。

 #create vector of data
data <- c(1, 3, 5, 6, 7, 8, 10, 11, 12, 14)

#select random sample of 5 elements with replacement
sample(x=data, size=5, replace= TRUE )

[1] 12 1 1 6 14

例 2: データ ブロックからのランダム サンプル

次のコードは、データ フレームからランダムなサンプルを選択する方法を示しています。

 #create data frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
                 y=c(12, 6, 4, 23, 25, 8, 9),
                 z=c(2, 7, 8, 8, 15, 17, 29))

#view data frame 
df

   X Y Z
1 3 12 2
2 5 6 7
3 6 4 8
4 6 23 8
5 8 25 15
6 12 8 17
7 14 9 29

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow (df), size= 3 ), ]

#display randomly selected rows
rand_df

   X Y Z
4 6 23 8
7 14 9 29
1 3 12 2

このコード部分で何が起こっているかを次に示します。

1. R でデータ フレームのサブセットを選択するには、次の構文を使用します: df[rows, columns]

2.上記のコードでは、データ フレームとすべての列から 3 行のサンプルをランダムに選択します。

3.最終結果は、ランダムに選択された 3 行を含むデータ フレームのサブセットです。

この関数は値をランダムに選択するため、 sample()関数を使用するたびに、R は異なるサンプルを選択することに注意することが重要です。

特定の分析の結果を再現するには、sample() 関数が毎回同じランダム サンプルを選択するように、必ずset.seed(some number)を使用してください。例えば:

 #make this example reproducible
set.seed(23)

#create data frame
df <- data.frame(x=c(3, 5, 6, 6, 8, 12, 14),
                 y=c(12, 6, 4, 23, 25, 8, 9),
                 z=c(2, 7, 8, 8, 15, 17, 29))

#select random sample of three rows from data frame
rand_df <- df[ sample ( nrow (df), size= 3 ), ]

#display randomly selected rows
rand_df

   X Y Z
5 8 25 15
2 5 6 7
6 12 8 17

上記のコードを実行するたびに、データ フレームの同じ 3 行が毎回選択されます。

追加リソース

R での層別サンプリング (例あり)
R での系統的サンプリング (例付き)
R でのクラスター サンプリング: 例付き

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です