- R語言經典實例(原書第2版)
- (美)J.D.隆 保羅·蒂特
- 214字
- 2020-08-03 16:43:28
2.2 設定變量
2.2.1 問題
將某個值賦值給一個變量。
2.2.2 解決方案
使用賦值運算符(<-)進行賦值。在賦值前無須對變量進行聲明。
x <- 3
2.2.3 討論
R軟件采用“計算器”模式,方便快捷。但是,有時候需要定義變量并保存變量值。這省去了重復輸入的時間并使你的工作更為明晰。
在R軟件中,不必對變量進行聲明或者顯式地創建變量,只需要將值賦予一個名稱,R軟件就會自動生成該名稱的變量:
x <- 3 y <- 4 z <- sqrt(x^2 + y^2) print(z) #> [1] 5
注意,賦值操作由一個小于號(<)和一個連字符(-)構成,兩個符號之間沒有空格。
當使用此方法在命令行提示符處定義變量時,該變量將存儲到當前的工作空間中。工作空間僅存儲在計算機的內存中,但你可以把工作空間保存至本地硬盤。該變量會留存在工作空間,直至用戶刪除該變量。
R軟件是動態的輸入語言,即可隨意改變變量的數據類型。我們可以先定義x為數值型變量,隨后馬上對其賦值一個字符串向量,在這一過程中R軟件能完全理解用戶的意圖:
x <- 3 print(x) #> [1] 3 x <- c("fee", "fie", "foe", "fum") print(x) #> [1] "fee" "fie" "foe" "fum"
在某些R函數中,你會看到很特別的賦值符號<<-:
x <<- 3
這一操作能強制賦值給一個全局變量,而不是局部變量。但是,這超出了本次討論的范圍。
為了全面介紹,在此給出另外兩種賦值方式:在命令提示符中使用單個等號(=)也可以對變量進行賦值;在所有可以應用向左賦值符號(<-)的地方都可以應用向右賦值符號(->),它可以對右側變量進行賦值(參數順序互換了)。
foo <- 3 print(foo) #> [1] 3 5 -> fum print(fum) #> [1] 5
我們建議你避免這些用法。等號賦值很容易與邏輯運算的檢驗相等中的等號混淆。向右賦值在某些情況下可能很有用,但對于那些不習慣看到它的人來說可能會令人困惑。
2.2.4 另請參閱
關于assign函數的幫助頁面,請參考2.4節、2.14節和3.3節。