スマホ用は別頁
大きな区分
高校数学(←Top)>>高卒~大学数学
>>統計用フリーソフトR
現在地と前後の項目(サブメニュー)

統計用フリーソフトR の基本操作(1)
統計用フリーソフトR の基本操作(2)
Rによる棒グラフの作成
Rによる度数分布表,クロス集計表の作成
ヒストグラムを表示する関数 hist( )
Rによるヒストグラム,散布図の作成
Rによるグラフの作成(1)
Rによるグラフの作成(2)
Rによる分岐とループ
名義尺度データの比率の検定
フィッシャーの正確確率検定
一様分布の疑似乱数を作る関数 runif( )
標本抽出関数 sample( )など

=== 読者が配色を変更したい場合 ===
◎外側の色を変えるには,次の色をクリック
◎内側の色を変えるには,次の色をクリック
標準文字色を変えるには,次の色をクリック
《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引数が
 ①省略されている:引数が何もないとき→エラー
 ②ベクトルでなく1つの数であるとき
ⅰ) 正の整数であるとき
【例5】
sample(3)
⇒ sample(1:3, 3)と解釈される
⇒ 2 3 1 など(結果の順序は毎回変わる)
ⅱ) 1以上の分数や小数であるとき⇒小数部分を切り捨てた正の整数と解釈される
【例6】
sample(7/2)
sample(3.5)
⇒ 例3と同じ
ⅲ) 1未満の数であるとき⇒その数字が1個与えられ,かつ,1個選び出すことと解釈される
【例7】
sample(0.2) ⇒ 0.2
sample(−2) ⇒ −2
ⅳ) 文字のセットや文字列であるとき⇒文字のセットや文字列から選ばれる
【例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 など
 ②正の整数でないとき
⇒ 第2引数の小数部分を切り捨てた正の整数と解釈される
 ③数でなくベクトルであるとき
⇒ 第1成分の整数と解釈される.第1成分が正の数でなければ,エラー
• 元のベクトルの各要素が抽出される確率に重み付けを行うには,引数probに重み付けベクトルを指定すればよいが,既定値で各要素が抽出される確率は等しくなっている.
• 関数sample.int( )は,sample( )の高速版であるが,ここでは解説を省略する.
• 他の関数と同様に,各引数を名前付き引数として,sample(size=2, x=c(1,2,3,4,5))のように書くときは,第1, 第2引数等の順序は問われず,どの順に書いてもよい.この場合には,x, size, replace , prob という用語を使わなければならない.
...(PC版)メニューに戻る
■このサイト内のGoogle検索■

△このページの先頭に戻る△
【 アンケート送信 】
… このアンケートは教材改善の参考にさせていただきます

この頁について,良い所,悪い所,間違いの指摘,その他の感想があれば送信してください.
○文章の形をしている感想は全部読ませてもらっています.
○感想の内で,どの問題がどうであったかを正確な文章で伝えていただいた改善要望に対しては,可能な限り対応するようにしています.(※なお,攻撃的な文章になっている場合は,それを公開すると筆者だけでなく読者も読むことになりますので,採用しません.)


質問に対する回答の中学版はこの頁,高校版はこの頁にあります