Next: , Previous: Simple manipulations numbers and vectors, Up: Simple manipulations numbers and vectors



2.1 向量和賦值

R 是在指定的資料結構(data structure)上起作用的。其中, 最簡單的結構就是由一系列有序 數值構成的數值向量(vector)。假如我們要 創建一個含由五個數值的向量 x,且這五個值分別為10.4,5.6,3.1, 6.4 和 21.7,R 中的命令為

     > x <- c(10.4, 5.6, 3.1, 6.4, 21.7)

這是一個用函數 c() 完成的賦值語句。 這裏的函數 c() 可以有任意多個 參數,而它的值則是一個把這些參數首尾相連 形成的一個向量1

在 R 環境裏面,即使是運算式中的標量也是被當作長度為1的 向量。

注意一下賦值符號 (<-),它實際上包括 兩個字元,即 < (“小於號”) 和 - (“負號”)。這兩個字元在方向上要求嚴格一致2並且 `指向'被運算式賦值的對象。 在許多情況下,= 可以代替使用。 賦值也可以用函數 assign() 實現。 下麵的命令和前面的賦值命令等價:

     > assign("x", c(10.4, 5.6, 3.1, 6.4, 21.7))

我們常用的賦值符 <- 可以看作是該命令 一個語義上的縮寫。

當然,還可以從另外一個方向上賦值。 用下面的語句,可以完成 上面同樣的賦值工作

     > c(10.4, 5.6, 3.1, 6.4, 21.7) -> x

如果一個運算式是一個完整的命令,那麼它的值將會被顯示在螢幕上 並且不能被別的物件訪問3。因此,如果我們 運行語句

     > 1/x

五個數的倒數將會在終端顯示 ( 注意,x 的值沒有改變)。

進一步的賦值

     > y <- c(x, 0, x)

會創建一個含有11個元素的向量 y, 其中包括兩份 x 拷貝和位於中間的一個0。


Footnotes

[1] 除了向量格式的參數, 對於 list 模式的參數,函數 c() 的作用 可能會有點差異。具體參見 Concatenating lists.

[2] 譯者注:`->'和`<-'是一致的,但'`-<'與`>-'就不一致了。

[3] 實際上,在其他命令運行前, 它是保存在變數 .Last.value 中。譯者注:當然你還可以直接在螢幕上拷貝運算式的輸出值。