いかおくら自習室のブログ

普段の学習内容などのアウトプット用のブログです

学習day4

R言語を学習し始める。

 

Rコマンドの中には処理が重く、実行に時間がかかるものがある。

その場合は[Ctrl]+[C]を入力する。


数列は[:]で記入する。

例えば、1:6は[1 2 3 4 5 6]の数列を表す。


変数は[<-]で代入する。

オブジェクトが作られた際は、RStudioの右上「Environment」ペインに表示される。


ls関数[ls()]を使えば、すでに使っているオブジェクト名がわかる


2つの長さが異なるベクトルの間で要素ごとの演算を実行するとき、Rは短いベクトルを反復的に使う。


数列の内積は[%*%]演算子、直積は[%o%]演算子で計算できる。

 

◎[%*%]演算子

die <- 1:6

die %*% die

91

↑この時、dieオブジェクト[1 2 3 4 5 6]の各列を[1 2 3 4 5 6]で掛け算している。

1 × 1 = 1

2 × 2 = 4

3 × 3 = 9

4 × 4 = 16

5 × 5 = 25

6 × 6 = 36

上記を全て加算している。

 

◎[%o%]演算子

die <- 1:6

die %o% die

[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
[2,] 2 4 6 8 10 12
[3,] 3 6 9 12 15 18
[4,] 4 8 12 16 20 24
[5,] 5 10 15 20 25 30
[6,] 6 12 18 24 30 36

各行列で要素を掛け算している。


sample関数は、ベクトルからsize個の要素を返す。

sample(1:6, size = 1)

2

## 1~6の数列の中から、ランダムで1個取り出す

 

しかし、以下の場合は、同じ数字が2回目に出ることはない。

sample(1:6, size = 2)

2 5

## sampleは、デフォルトでは最初に返した値は元に戻さないで次の要素を返す

従って、元に戻すsampleの記述は以下

sample(1:6, size = 2, replace = TRUE)

5 5


独自関数を作るには[function()]関数を使う。

my_function <- function{}

後ろの波カッコの間に配置されたRコードを元に仮数を作る。

サイコロのコードを関数にするには、以下を記述

roll <- function(){

 die <- 1:6

 dice <- sample(die, size=2, replace=TRUE)

 sum(dice)

}


引数

roll2 <- function(bones){

 dice <- sample(bones, size=2, replace=TRUE)

 sum(dice)

}

 

roll2(bones = 1:4)

3

roll2を呼び出すときにbonesの引数の値を渡さなければエラーになってしまうことに注意。

(疑問だが、roll2(bones = 1:4)だとエラーが起きてしまう。引数ではオブジェクトの定義が無理なのか・・?)