R言語

【R言語】関数sampleを使った無作為抽出 復元抽出・非復元抽出

  1. HOME >
  2. R言語 >

【R言語】関数sampleを使った無作為抽出 復元抽出・非復元抽出

スポンサーリンク

R言語で無作為抽出を行う関数とその使い方について解説します。

この記事では、関数sampleを用いた復元抽出、非復元抽出法を紹介します。

任意のデータについて無作為抽出を行う例について見ていきます。

この記事で扱うRスクリプトは以下からダウンロードできます。

無作為抽出

Rで無作為抽出を実行するには次の関数sampleを使います。

sample(x, size, replace = FALSE, prob = NULL)sample.int(n, size = n, replace = FALSE, prob = NULL, useHash = (n > 1e+07 && !replace && is.null(prob) && size <= n/2))

上で紹介した関数の引数は次の通りです。

関数sampleの引数
xベクトル。このベクトルの要素について無作為抽出を行う。
n正の整数。1からnまでの要素について無作為抽出が行われる。
size抽出回数を表す非負の整数。
replacelogical型。復元抽出を行うかどうか。
probxの要素の抽出する確率を表すベクトル。
useHashlogical型。ハッシュによるアルゴリズムを用いるかどうか。replace = FALSE、prob = NULL、size <= n/2のときに適用できる。

引数replaceによって復元抽出と非復元抽出を選択することが可能です。

実行例

早速、関数sampleの使い方について見ていきます。

1から100までの整数から50個、非復元抽出するには次のように関数sampleを実行します。  

size = 100で実行しても、次のように重複している要素がなく1から100までの要素について非復元抽出ができていることが確認できます。 

また、引数replaceをTRUEにすることで復元抽出を行うことができます。

引数を変更し先ほどと同様の抽出を行うと、重複ありでnumbersの100個の要素を抽出することができます。

関数uniqueを使い抽出された重複しない要素を数えると、100ではないため復元抽出を実行できていることが分かります。

補足ですが、引数probでベクトルの各要素の生起確率を与えることができます。

無作為抽出のほかにも、各要素の発生する確率をあらかじめ指定することができます。

また、非負の整数の抽出は関数sample.intでも行うことができます。

次のように引数nに指定した値までの整数について、無作為抽出を行うことができます。

ここまで、numeric型の要素について無作為抽出を行ってきましたが、次のようにcharacter型の要素についても無作為抽出を行うこともできます。

 型に関係なく無作為抽出を行うことができます。

まとめ

R言語で無作為抽出を行う関数と実行例を紹介しました。

関数sampleで無作為抽出を実行することができ、引数 によって復元抽出と非復元抽出を選択することができます。

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-R言語
-,