Amazon Ads

2014年3月21日 星期五

【R筆記】初探R資料結構-列表(List)

這裡我們來認識一下R中的列表(List)資料結構。 要宣告一個列表的變數時,可以使用下列的指令:
> mylist <- list(1, 2, 3, 4, 5)
> mylist
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4

[[5]]
[1] 5
跟向量(vector)不一樣的是,列表中的元素可以是異質 (heterogeneous) 的。

在同一個列表中的各個元素,可以各自是不同的資料型別,如:
> list2 <- list(1, 2, 3, "x", "y", "z")
> list2
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] "x"

[[5]]
[1] "y"

[[6]]
[1] "z"
我們可以使用索引(index)來取得或參照到列表中某一位置的元表 下列的指令,參照到list2中第三個元素:
> list2[[3]]
[1] 3
鏘鏘鏘!這裡的中括號要有兩個,請記住,是兩個!

我們也可以使用多個索引來取得列表中某一群的元素。

使用下列指令,我們可以取得第1、3、5個元素所組成的列表:
> list2[c(1, 3, 5)]
[[1]]
[1] 1

[[2]]
[1] 3

[[3]]
[1] "y"
鏘鏘鏘!這裡的中括號只有一個!

我們可以為列表中的元素設定名稱。
> names(list2) <- c("le1", "le2", "le3", "le4", "le5", "le6")
> list2
$le1
[1] 1

$le2
[1] 2

$le3
[1] 3

$le4
[1] "x"

$le5
[1] "y"

$le6
[1] "z"
在指定元素名稱之後,要取得某一位置的元素,除了使用索引值之外,也可以使用「元素名稱」當索引來取得:
> list2[["le1"]]
[1] 1
或使用「list名稱$元素名稱」的方式來取得:
> list2$le1
[1] 1
鏘鏘鏘!上列指令中,兩個名稱之間是一個「$」符號。 如果你需要進一步地認識 R,我推薦:

還有只有 Kindle 版本的這本: