1.4 データ構造(3)リスト
ベクトルは単一のデータ型しか保持できませんが、異なるデータ型のベクトルの集まりを1つのオブジェクトとして扱えるデータ構造をリストといいます。リストは、ベクトルだけでなく、別のリストも要素として持つことができます。
season <- 2013
pacific <- c("楽天", "西武", "ロッテ", "ソフトバンク", "オリックス", "日本ハム")
central <- c("巨人", "阪神", "広島", "中日", "DeNA", "ヤクルト")
npb <- list(pacific = pacific, central = central, season = season)
npb## $pacific
## [1] "楽天" "西武" "ロッテ" "ソフトバンク" "オリックス"
## [6] "日本ハム"
##
## $central
## [1] "巨人" "阪神" "広島" "中日" "DeNA" "ヤクルト"
##
## $season
## [1] 2013
リストを新たに作成するにはlist()関数を用います。引数は、要素の参照名 = オブジェクトをカンマ区切りで列挙します。リストのオブジェクト名の後に$要素の参照名をつけて実行すると、指定したリストの要素を直接参照できます。例えば、
npb$pacific## [1] "楽天" "西武" "ロッテ" "ソフトバンク" "オリックス"
## [6] "日本ハム"
また、npb[[1]]のようにすれば、要素番号でリストの要素を参照することもできます。
npb[[2]]## [1] "巨人" "阪神" "広島" "中日" "DeNA" "ヤクルト"
以下のようにして、文字列として参照名を指定することもできますが、この場合の結果はリストとなります。
npb["central"]## $central
## [1] "巨人" "阪神" "広島" "中日" "DeNA" "ヤクルト"
typeof(npb["central"])## [1] "list"
統計計算などを行うRの関数の多くは、その結果をリストの形式で返します。リストの要素の参照名の一覧を見るにはnames()関数を用います。
names(npb)## [1] "pacific" "central" "season"
また、リストの構造を見たい場合は、str()関数を用います。
str(npb)## List of 3
## $ pacific: chr [1:6] "楽天" "西武" "ロッテ" "ソフトバンク" ...
## $ central: chr [1:6] "巨人" "阪神" "広島" "中日" ...
## $ season : num 2013