Amazon Ads

2014年3月19日 星期三

【R筆記】初探R資料結構-向量(Vector)

在 R 中 Vector 是最常用的資料結構,使用它前,我們需要了它幾個主要的特性。

在 Vector 中的資料,需要是同質性的,也是說在一個 Vector 的所有元素 (element),需要是同一型別,用 R 的話來說,就是要同一種模式 (mode)。

如我們指定一個 Vector 給變數d,則在指定的元素中,需要是同型別的:
> d <- c(1, 2, 3, 4, 5)
> d
[1] 1 2 3 4 5
若我們在指定 Vector 時,指定了不同型別的元素,則 R 會自動幫我們轉型:
> e <- c(1, 2, "a", "b")
> e
[1] "1" "2" "a" "b"
或是
> f <- c(2.0, e)
> f
[1] "2" "1" "2" "a" "b"
Vector可以使用索引 (index) 來取得某一位置的元素,如: > d[3] [1] 3 上列的指令取得d中第三個元素的值,這裡要注意的是,在R中的索引,是由1算起,而不是0
Vector 可以使用索引 (index) 來取得多個位置的元素,並回傳一個 Vector,如:
> d <- c(2, 4, 6, 8, 10)
> g <- d[c(1, 3, 5)]
> g
[1]  2  6 10
Vector 中的元素可以被設定一個名稱,Vector 有一個names的屬性,我們可以使用它來設定 Vector 的元素名稱,如:
> names(d) <- c("element1", "element2", "element3", "element4", "element5")
> d
element1 element2 element3 element4 element5 
       2        4        6        8       10 
請注意,這裡的names有「s」。 一旦給了元素名稱之後,我們也就可以使用名稱來取得 Vector 的元素了:
> d["element1"]
element1 
       2 
鏘!鏘!在中括號的元素名稱,請記得用兩個「"」 (雙引號) 包起來喔!
如果你需要進一步地認識 R,我推薦:

還有只有 Kindle 版本的這本: