スマホ用は別頁
=== 読者が配色を変更したい場合 ===
◎外側の色を変えるには,次の色をクリック
◎内側の色を変えるには,次の色をクリック
標準文字色を変えるには,次の色をクリック
《Rの関数の♪〜軽い解説》
== 具体例で,とにかく動くもの ==
R version 4.0.3, 4.0.4Patched
----- この教材の最終更新年月日:2021.5.08
• この教材では,体験・入門のレベルで,30分から1時間ほどで「そこそこ分かる」ものを目指す.
• Rに付属のhelpが英語で,そのGoogle翻訳が"読めない"ので,自分自身に分かる書き方に直す.
• 正確なレファレンスが必要な人は,Rのコンソールからhelpを読んでください.
関数 sample( ), sample.int( )
標本抽出関数,ランダムなベクトルを作る
整数の疑似乱数を作る
書き方
sample(x, size, replace = FALSE, prob = NULL)
主な引数
(1) 第1引数には,ベクトルを書く.
(2)第2引数には,それらのベクトルから抽出する標本の個数を書く
【例1】
sample(c(1,2,3,4,5), 2)
⇒ {1,2,3,4,5}から2個取り出す
⇒ 3 5 など(結果は毎回変わる)
第1引数を連続整数ベクトルとするときは,次の例2のようにコロンを使って書くと便利
【例2】
sample(1:10, 3)
⇒ 1以上10以下の整数から3個取り出す
⇒ 9 10 3 など(結果は毎回変わる)
※通常の使い方でsample( )関数を使うと,上記の例1,例2のように疑似乱数的に毎回結果が変わる.これに対して,乱数を用いたシミュレーションの再現テストをやる場合のように「同じ出方が必要な場合」は,set.seed(number)により,numberの所に分析者が決めた特定の整数を繰り返し使うと,同じ結果を得ることができる.
(3)第3引数もしくは名前付き引数でreplace=により,復元抽出(=TRUEまたは=T),非復元抽出(=FALSEまたは=F)の別を指定する.既定値(省略された場合の値)は,replace=FALSEすなわちデフォルトで非復元抽出になっているので注意.
 非復元抽出では,「一度出たものは,その後は出ない」から,「標本が重複することはない」「それまでに出ているものを見れば残りに出るものが予想できる」ので,完全に公平であるが乱数代わりに使うことはできない.また,元のベクトルの要素数lenght(x)よりも大きな個数の標本nを指定するとエラーになる.
【例3】
sample(1:5, 5)
⇒ 1〜5の整数から5個取り出す
⇒ 3 4 2 5 1(4番目まで見たら5番目は出るまでに分かる)
 サイコロの目が同様な確からしさで出るかどうかというような実験をするには,復元抽出replace=Tを指定する.疑似乱数的に使うには,replace=Tとする.
【例4】
 サイコロを60回投げる実験をRで行い,出た目の回数をヒストグラムに表示する
sample(1:6, 60, replace=T)
hist(x, breaks=c(0,1,2,3,4,5,6)) ⇒ 右図
要約
 引数が「省略されている場合」や「想定外の書き方になっている場合」の結果を覚えるのは大変.
 第3引数までは「省略せずに書く」と決めると,簡単になる.特に,replace=は重要
sample(ベクトル, 選び出す標本の数,
  非復元:replace = FALSE
  復元:replace=TRUE)

備考
第1引数が
 @省略されている:引数が何もないとき→エラー
 Aベクトルでなく1つの数であるとき
@) 正の整数であるとき
【例5】
sample(3)
⇒ sample(1:3, 3)と解釈される
⇒ 2 3 1 など(結果の順序は毎回変わる)
A) 1以上の分数や小数であるとき⇒小数部分を切り捨てた正の整数と解釈される
【例6】
sample(7/2)
sample(3.5)
⇒ 例3と同じ
B) 1未満の数であるとき⇒その数字が1個与えられ,かつ,1個選び出すことと解釈される
【例7】
sample(0.2) ⇒ 0.2
sample(−2) ⇒ −2
C) 文字のセットや文字列であるとき⇒文字のセットや文字列から選ばれる
【例8】
sample(letters, 10)
⇒ lettersは英小文字の文字セット26文字{"a","b","c",...,"z"}で,その中から非復元で10個抽出する
⇒ "g" "w" "f" "p" "b" "z" "d" "x" "e" "n"など
sample(LETTERS, 5)
⇒ LETTERSは英大文字の文字セット26文字{"A","B","C",...,"Z"}で,その中から非復元で5個抽出する
⇒ "W" "Y" "C" "J" "E"など
cities<−c("東京","大阪","名古屋") 
⇒ citiesが三都市の名前であるとき
sample(cities, 2) ⇒ 都市名から2個選ばれる
⇒ "大阪" "東京"など
第2引数が
 @省略されているとき
【例9】
sample(1:3) ⇒ 第1引数に与えられたベクトルの全部が選ばれる
⇒ 2 3 1 など
 A正の整数でないとき
⇒ 第2引数の小数部分を切り捨てた正の整数と解釈される
 B数でなくベクトルであるとき
⇒ 第1成分の整数と解釈される.第1成分が正の数でなければ,エラー
• 元のベクトルの各要素が抽出される確率に重み付けを行うには,引数probに重み付けベクトルを指定すればよいが,既定値で各要素が抽出される確率は等しくなっている.
• 関数sample.int( )は,sample( )の高速版であるが,ここでは解説を省略する.
• 他の関数と同様に,各引数を名前付き引数として,sample(size=2, x=c(1,2,3,4,5))のように書くときは,第1, 第2引数等の順序は問われず,どの順に書いてもよい.この場合には,x, size, replace , prob という用語を使わなければならない.
...(PC版)メニューに戻る