R List入門
リストは異なるデータ構造を複数個格納することができるデータ構造のこと。例えば、matrix, ベクトル, データフレーム, 数値などを混ぜて保存できる。
リストを作る
list関数を使ってつくる
x <- list(m=matrix(1:6,nrow=2),v=1:10,chr=c("hi","hello"))
x
## $m
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
##
## $v
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $chr
## [1] "hi" "hello"
リストの例
行列の固有値、固有ベクトルを計算した結果はリストで返却される.
m<- matrix(1:9,nrow=3)
m.eigen <- eigen(m)
m.eigen
## $values
## [1] 1.611684e+01 -1.116844e+00 -5.700691e-16
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.4645473 -0.8829060 0.4082483
## [2,] -0.5707955 -0.2395204 -0.8164966
## [3,] -0.6770438 0.4038651 0.4082483
class(m.eigen)
## [1] "list"
リストの要素数の取得はlength
length(m.eigen)
## [1] 2
リスト要素へのアクセス
アクセス方法により、返り値がリスト型か、リストに格納されているデータ構造かが異なるので注意
- listname[n]でリストのn番目にアクセスできるが、返り値はリスト型になる
m.eigen[1]
## $values
## [1] 1.611684e+01 -1.116844e+00 -5.700691e-16
class(m.eigen[1])
## [1] "list"
- [[]]演算子を使うと、返り値がリスト内のデータ構造になる
m.eigen[[1]]
## [1] 1.611684e+01 -1.116844e+00 -5.700691e-16
class(m.eigen[[1]])
## [1] "numeric"
- []とリストの名前でアクセス
m.eigen["values"]
## $values
## [1] 1.611684e+01 -1.116844e+00 -5.700691e-16
class(m.eigen["values"])
## [1] "list"
返り値はリストになる
- $とリストの名前でアクセス
m.eigen$values
## [1] 1.611684e+01 -1.116844e+00 -5.700691e-16
class(m.eigen$values)
## [1] "numeric"
返り値はリストにならない
リスト要素の名前を取得する
names関数を使う
names(m.eigen)
## [1] "values" "vectors"