Next: Vector arithmetic, Previous: Simple manipulations numbers and vectors, Up: Simple manipulations numbers and vectors
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。
[1] 除了向量格式的參數,
對於 list 模式的參數,函數 c() 的作用
可能會有點差異。具體參見 Concatenating lists.
[2] 譯者注:`->'和`<-'是一致的,但'`-<'與`>-'就不一致了。
[3] 實際上,在其他命令運行前,
它是保存在變數 .Last.value 中。譯者注:當然你還可以直接在螢幕上拷貝運算式的輸出值。