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") #FALSE
c : 配列
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 0
matrix : 行列
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黒魔術でどうにかしようとしたけど、ちょっと無理だった。