LoginSignup
11
15

More than 5 years have passed since last update.

R List入門

Posted at

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"
11
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
15