Amazon Ads

2014年3月10日 星期一

【R筆記】使用R的向量(vector)的來做資料運算

vector 在 R 中是最簡單的資料結構,他是包含一系列資料的集合,如:
v <- (1, 2, 3, 4, 5)
上列的指定中,v 這個變數被指定了含有五個數字的集合。
ch <- c('a', 'b', 'c')
上列的指定中,ch 這個變數被指定了含有三個字元的集合。

上列指定運算子右邊的 c(...) 其實是一個函數,可以在 R console 中輸入:
help(c)
來看如何使用他的說明。

除了上列的指定方式外,我們也可以使用下列方式來指定一個 vector 內的元素:
v4 <- c(1, 2, 3, 6:10)
這指定了「1, 3, 3, 6, 7, 8, 9, 10」給 v4 這個變數。

若我們要取得 vector 某一個 index 的元素,可以使用:
v4[1]
這表示取得 v4 中的第一元素,這裡要注意的是 vector 的 index 是從 1 開始算的。

另外,也可以使用判斷式來取得滿足某一條件的元素,像下列運算式中,會取得 v4 中大於、等於 6 的元素:
v4[v4 >=6]
結果:

[1]  6  7  8  9 10

指定一個 vector 變數之後,我們就可以對他做一些運算、操作,如要取得平均值,例如,我們可以使用
sd(v)
或者使用 mean 函數來取得平均值,如:
mean(v)
vector 另一個好用的地方,在於可以一次對 vector 中的所有元素 (element) 做運算,如:
1/v
結果就會得到 v 中每一個元素的倒數。 也可以對兩個 vector 做加減乘除的運算,例如我們另外指定一個 v1 的變數:
v1 <- (2, 4, 6, 8, 10, 3, 6, 9, 12, 15)
v/v1
依序就會得到 v 第1個元素除以 v1 第1個元素的值、 v 第2個元素除以 v4 第2個元素的值..., v 第1個元素除以 v4 第6個元素的值,以此類推。

這要注意的是,當使用兩個 vector 做運算時,其中一個 vector 內包含的元素數量,要是另一個 vector 中包含元素數量的倍數,不然就會出現如下的警告訊息:
警告訊息:
In v/v1 : 較長的物件長度並非較短物件長度的倍數