Rプログラミング入門 2回目
Rプログラミング入門 2回目。関数と元に戻すサンプリング。
関数
関数の使い方は「R」言語だからといって、特別に異なることはなさそうです。
他の言語と同じです。
例
- round関数:丸める
- factoial関数:階乗 ⇒ factorial(3) = 3 * 2* 1
IDEの違いだけ。
RStudioは、関数の候補と、選択している関数の候補の説明を表示してくれます。
R Tools for Visual Studioは、関数の候補まで表示してくれます。「()」まで入力した後で、関数の説明を表示してくれます。
RStudio
R Tools for Visual Studio
元に戻すサンプリング
sample関数の使い方に沿って、進んでいきます。
RStudio
R Tools for Visual Studio
関数の説明を見ると、4つの引数が必要な関数です。
- x
- size
- replace = FALSE
- prob = NULL
本の通りに進めると、サイコロを2回振った時をシミュレートしたいそうです。
事前準備として、オブジェクト die に 1:6 のベクトルを入れておきます。
RStudio
R Tools for Visual Studio
(存在しているオブジェクトを確認するには、Visual Studioの方が見やすいかも)
繰り返しますが、サイコロを2回振った時をシミュレートします。
それには、sample関数の引数xにdieオブジェクトを渡し、引数sizeに2を渡せばよいみたいです。
5回ずつ繰り返します。
1つ前のコマンドを入れるには、どちらのIDEも↑キーで出てきます。
(ついでに、どちらのIDEもCtrl+Spaceで候補が表示されます。)
RStudio
R Tools for Visual Studio
なんだか、sample関数の説明みたいな項ですね。
ただ、気を付ける点としては、「サイコロを2回振った時をシミュレート」ですが、
sample関数の上記の使い方ですと、1回目の抽選後に、1回目に選択された要素を除外して、2回目の抽選に入るみたいです。
なので、RStudio側の1回目を例にとると、
1回目の要素の抽選:1,2,3,4,5,6の中から1つ抽出する ⇒ 5が選ばれる
2回目の要素の抽選:1,2,3,4,6の中から1つ抽出する ⇒ 3が選ばれる
これでは、「サイコロを2回振った時をシミュレート」になりません。
そこで、sample関数の「replace = FALSE」と記載されている引数を用います。
他の言語と同様に、引数=○○と記載されている引数は指定しなくても、規定値でその○○の値が用いられます。
なので、sample関数のreplace引数は、必ず指定する必要はなく、指定されていない場合は、FALSEで動作します。(もちろん、あえてFALSEで指定することもできます。)
引数replaseをTRUEで指定して実行します。
RStudio
R Tools for Visual Studio
引数replaceをTRUEで指定することで、「1:6」ベクトルから毎度抽選してくれるようになりました。
今日はここまで。
追記。
本には、「1or2個目以降の引数は、名前を書くようにすべき」と記載されています。
その理由に、「とってもコードが読みやすくなる」と。さらに「通常、第1引数はだいたい自明」であると。
・・・あいまいすぎるので、
・必ず指定が必要な引数は、名前を付けません。
・規定値を取る引数は、名前付きで指定します。
として進めていきます。