可能重複:
Assignment operators in R: '=' and '<-'是否有「=」和「< - 」之間的技術差異
我想知道是否有賦值運算符"="
之間的技術差異"<-"
in R. So,如果我使用:
它有什麼區別嗎?例1:a = 1
或a <- 1
例2:a = c(1:20)
或a <- c(1:20)
感謝您的幫助
斯文
可能重複:
Assignment operators in R: '=' and '<-'是否有「=」和「< - 」之間的技術差異
我想知道是否有賦值運算符"="
之間的技術差異"<-"
in R. So,如果我使用:
它有什麼區別嗎?例1:a = 1
或a <- 1
例2:a = c(1:20)
或a <- c(1:20)
感謝您的幫助
斯文
是的,有。這是什麼'='
幫助頁說:
運營商< - 和=分配到 環境中,他們 評估。操作者< - 可用於 的任何地方,而運算符=是 只允許在頂層(例如, 在 命令提示輸入的完整表達)中的 一個支撐列表或 子表達式爲一體表達式。
「可以使用」的幫助文件意味着在這裏分配一個對象。在一個函數調用中,您不能分配一個對象=
,因爲=
意味着在那裏分配參數。
基本上,如果您使用<-
,那麼您將分配一個變量,您可以在當前環境中使用該變量。例如,考慮:
matrix(1,nrow=2)
這只是一個2行矩陣。現在考慮:
matrix(1,nrow<-2)
這也爲您提供了一個兩行矩陣,但現在我們也有一個名爲nrow
的對象,結果爲2!發生了什麼事是在第二次使用時,我們沒有分配參數nrow
2,我們分配了一個對象nrow
2並將其發送到第二個參數matrix
,這恰好是nrow。
至於編輯的問題。兩者都是一樣的。使用=
或<-
可能引起很多討論,哪一個最好。許多風格指南提倡<-
,我同意這一觀點,但請保留<-
作業的空間,否則他們可能變得很難解釋。如果你不使用空格(你應該,除了在twitter上),我更喜歡=
,並且從不使用->
!
但是,只要您選擇的是一致的,那麼使用什麼並不重要。在一行上使用=
,在下一行上使用<-
會產生非常難看的代碼。
這個解釋要比這個問題的其他重複+1好得多。 – 2017-05-19 14:29:07
現在還在r-faq標籤上。 – 2011-05-26 15:27:14