在R語言中,等號與賦值有些許的差異,請參考以下的兩個例子做比較:
範例一:
x <- 5
length(x = seq(1,10))
## [1] 10
x
## [1] 5
在本範例程式第一行,將變數 x 賦予 5 之值。
而程式第二行透過指令 length 詢問 x 的長度,此時 x 等於 (=) 一個1到10的序列,因此回傳 10 的長度。
程式的第三行要求 x,因此回傳 5,表示 x 並未因為程式第二行的等號改變其賦值。
範例二:
x <- 5
length(x <- seq(1,10))
## [1] 10
x
## [1] 1 2 3 4 5 6 7 8 9 10
在本範例程式第一行,將變數 x 賦予 5 之值。
而程式第二行透過指令 length 詢問 x 的長度,此時 x 被賦予 (<-) 一個1到10的序列,因此依然回傳 10 的長度。
程式的第三行要求 x,因此回傳一個1到10的序列,表示 x 已因為程式第二行的賦值而有所改變!