標籤:strong os 類 表 應用 io
向量定義
R在實際應用中比較常用的一個對象就是向量(Vector)。向量的建立格式為
向量名 = c(x1,x2,x3,…..)
或 向量名 <- c(x1,x2,x3,…..)
或 c(x1,x2,x3,…..) -> 向量名
或 Assign("向量名", c(x1,x2,x3,…..)),c()為向量賦值函數,c()可以有任意多個參數,而起傳回值則是一個把這些參數首尾相連形成的向量。你可以在命令列中輸入?c或者help(c)來查看函數的詳細資料。例如我們要建立一個名稱為x的含有五個數值的向量可以用如下方式:
x=c(7.1, 6.3, 5.8, 2.4, 12.7),在RStudio中顯示如下
> x=c(7.1, 6.3, 5.8, 2.4, 12.7)
斷行符號就可以了。如果想查看x向量的具體值,則只需要在命令列中輸入x即可。如所示
> x
[1] 7.1 6.3 5.8 2.4 12.7
前面的[1]表示所得向量的第一個元素。
向量運算
以剛才的向量x為例,如果我們輸入 2*x命令,則向量中的每個元素都乘以2得到一個新的向量,我們也可以將該新的向量賦值給一個新的對象。同時,向量x中的每個元素的值是不會變化的。以上操作的結果如下所示
> x
[1] 7.1 6.3 5.8 2.4 12.7
> 2 * x
[1] 14.2 12.6 11.6 4.8 25.4
> y = 2 * x
> y
[1] 14.2 12.6 11.6 4.8 25.4
> x
[1] 7.1 6.3 5.8 2.4 12.7
以上賦值都是較簡單的賦值,查看以下樣本
> y = c(x, 0, x),則向量y的元素將是什麼情況呢?
在控制台中輸入y查看結果
> y
[1] 7.1 6.3 5.8 2.4 12.7 0.0 7.1 6.3 5.8 2.4 12.7
說明R建立了一個含有11個元素的的向量y,其中包括兩份x拷貝和位於中間的一個0。
上例中我們的x向量的每個元素都是數值,其實向量也可以接受字串類型的元素。例如我、們鍵入如下命令就能產生一個3個字串元素的向量
> str = c("h", "Time", "Vector")
> str
[1] "h" "Time" "Vector"
下面就是它的輸入結果。如果我們想要對str向量進行2 * str操作則R將會報錯,提示我們str是非數值元素組成的向量。
向量除了支援基本+, - ,*, /和冪^運算外,還包括一些常用的數學函數,如log, exp, sin, cos, tan, sqrt等等;max和min可以求出向量的最大值和最小值,如果向量元素是字串類型,則max和min函數得到的是向量元素按照字串順序排序的最後面的值和最前面的值;mean()和var()函數分別取得向量的平均值和方差,如上例中的向量y利用以上兩個函數求平均值和方差得到的結果如下
> mean(y)
[1] 6.236364
> var(y)
[1] 15.37655
很多的函數用法可以通過查看協助文檔獲得更多的資訊。
從向量中選取子集
如果我們要訪問向量的某些元素,我們可以可以在 向量名字後面加上[]以選取向量的子集。
> v = c(1.2,2.3, 3.4, 4.5, 5.6, 6.7, 7.8, 8.9)
> v
[1] 1.2 2.3 3.4 4.5 5.6 6.7 7.8 8.9
> v[2]
[1] 2.3
> v[2:6]
[1] 2.3 3.4 4.5 5.6 6.7
> v[c(1, 2 ,1)]
[1] 1.2 2.3 1.2
以上操作依次是取得向量v的第二個元素,取得向量v的第二到第六個元素的值,取得向量v第一個、第二個、重複第一個元素的值。