updated on 2019-08-25
・変数への代入 ・基本的な計算 データ構造 ・ベクトル ・行列 ・データフレーム ・リスト
代入では =(イコール)か <-, ->(矢印)を使う。
どちらを使っても構わない。
a=1 > a=1 b=2 > b=2 a+b [1] 3 c <- 4 5 -> d c+d < [1] 9
a=1 > a=1 b=2 > b=2 a+b # 足し算 a-b # 引き算 a*b # 掛け算 a/b # 割り算 a**b # べき乗 a^b # 同じくべき乗
> x=1:5 > x [1] 1 2 3 4 5 > y=c(1,3,5,7,9) > y [1] 1 3 5 7 9 > z=c("A","あ",1) > z [1] "A" "あ" "1"
> x=1:5 > x [1] 1 2 3 4 5 > y=c(1,2,1,2,1) > y [1] 1 2 1 2 1
> x+y
[1] 2 4 4 6 6
> x-y
[1] 0 0 2 2 4
> x*y
[1] 1 4 3 8 5
> x**y
[1] 1 4 3 16 5
> x/y
[1] 1 1 3 2 5
> x%*%y
[,1]
[1,] 21
> m=matrix(1:12,3,4) # 3行4列 > m [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 > n=matrix(2:13,3,4) > n [,1] [,2] [,3] [,4] [1,] 2 5 8 11 [2,] 3 6 9 12 [3,] 4 7 10 13
> m+n
> m-n
[,1] [,2] [,3] [,4]
[1,] -1 -1 -1 -1
[2,] -1 -1 -1 -1
[3,] -1 -1 -1 -1
> m*n
[,1] [,2] [,3] [,4]
[1,] 2 20 56 110
[2,] 6 30 72 132
[3,] 12 42 90 156
> m/n
行列と見た目は似ているが、列ごとの変数の型(実数型や文字型)を別個に管理したい場合に用いる。
> X=data.frame(parson=c("C","C","D","D","D"), height=c(160,165,170,175,180),weight=c(50,65,60,55,70)) > x [1] 1 2 3 4 5 > X parson height weight 1 C 160 50 2 C 165 65 3 D 170 60 4 D 175 55 5 D 180 70
> Y=as.matrix(X)
> Y
parson height weight
[1,] "C" "160" "50"
[2,] "C" "165" "65"
[3,] "D" "170" "60"
[4,] "D" "175" "55"
[5,] "D" "180" "70"
> str(X)
'data.frame': 5 obs. of 3 variables:
$ bird : Factor w/ 2 levels "C","D": 1 1 2 2 2
$ height: num 160 165 170 175 180
$ weight: num 50 65 60 55 70
> X=data.frame(A=1:5,B=2:6,C=3:7) > X A B C 1 1 2 3 2 2 3 4 3 3 4 5 4 4 5 6 5 5 6 7 > Y=as.matrix(X) > Y A B C [1,] 1 2 3 [2,] 2 3 4 [3,] 3 4 5 [4,] 4 5 6 [5,] 5 6 7 > heatmap(X) # heatmap関数は行列しか受け付けないのでエラー > heatmap(Y) # 正しく、ヒートマップが作成される
自由にオブジェクトを並列格納させる機能
> a=list(1:5, matrix(1:12,3,4), data.frame(x=1:4, y=2:5))
> a
[[1]]
[1] 1 2 3 4 5
[[2]]
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
[[3]]
x y
1 1 2
2 2 3
3 3 4
4 4 5
> a[1] # または a[[1]]
[[1]]
[1] 1 2 3 4 5
> a[[1]][2] [1] 2
> a[[2]][2,3] [1] 8
> a[[3]] x y 1 1 2 2 2 3 3 3 4 4 4 5 > a[[3]]$x [1] 1 2 3 4 > a[[3]]$y [1] 2 3 4 5
> a[[3]][2,]
x y
2 2 3
> class(a) [1] "list"
以上!!