Rの文法再確認した
Rを復習した。
主に細かい挙動の確認です
代入
あ = 3 -> a ## あ = 3 , a = 3
日本語も変数として使用可
= と <- は同じ。 -> で逆方向に
イテレータ
for と while
for(i in リストのオブジェクト ){
処理1
処理2
}
for(i in リストのオブジェクト )
処理
while(TRUE){}
if(FALSE | TRUE) break
条件分岐
if (i in リストのオブジェクト ){
処理1
処理2
}
for(i in リストのオブジェクト )
処理nc = ifelse(na > nb, na, nb)
組み込み関数
any : 条件がTRUEかFALSEか
any(3>4) #FALSE
exists: その変数がNULLでないか
a = 3
exists("a") # TRUE
exists("b") # FALSE
exists("NULL") #FALSEc : 配列
list = c(1,2,3) list2 = c(1:15)
length() :配列長
length(0:15) # 16
cbind,rbind : 同じ長さの配列から行列を作成
> cbind(c(1,2,4),2:0)
[,1] [,2]
[1,] 1 2
[2,] 2 1
[3,] 4 0
> rbind(c(1,2,4),2:0)
[,1] [,2] [,3]
[1,] 1 2 4
[2,] 2 1 0matrix : 行列
matrix(0,2,5)
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 0 0 0
[2,] 0 0 0 0 0
m[1,] <- c(1,3,4,5,6)
m[2,] <- c(5,3,6,1,4)
m[1,4] #-> 5
colnames(m) = c("A","B","C","D","E")
rownames(m) = c("alpha","beta")
A B C D E
alpha 1 3 4 5 6
beta 5 3 6 1 4
データフレーム
df = data.frame(m)
as.data.frame(m)
A B C D E
alpha 1 3 4 5 6
beta 5 3 6 1 4データフレームと行列は相互に変換可能
array : 分割表
> array(1:30,c(3,4,2))
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
, , 2
[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24
class: 型チェック
> class(1)
[1] "numeric"
> class("1")
[1] "character"
> class(c(3,3))
[1] "numeric"
> class(m)
[1] "matrix"
> class(as.data.frame(m))
[1] "data.frame"
論理式
&
&&
xor(a,b)
もっと細かいのはしょう先生のブログを読みましょう
Rの言語仕様とか色々参考にできそうな関数とかのメモ - Seeking for my unique color.
オブジェクト指向についてはまだ謎が多いのであとで調べる。eval黒魔術でどうにかしようとしたけど、ちょっと無理だった。