The manual狀態:爲什麼不應該在函數中使用「=」R運算符?
運算符「< - 」可用於任何地方, 而運算符「=」僅被允許在頂部電平(例如, 在命令提示輸入的完整表達式)或者作爲表達式的支撐列表中的子表達式的一個 。
The question here提到在函數調用中使用的區別。但是在功能定義,它似乎正常工作:那麼,爲什麼手冊中提到,the operator ‘=’ is only allowed at the top level
a = function()
{
b = 2
x <- 3
y <<- 4
}
a()
# (b and x are undefined here)
?
沒有任何關於它的language definition(沒有=
運營商上市,真可惜!)未在頂層
它在[第10.4.2節中綴和前綴運算符]中的R-lang中提及(http://cran.r-project.org/doc/manuals/R-lang.html#Infix-and-prefix-operators ),但並沒有提到比你提到的幫助條目更多的內容。 –
您引用的文字是「在頂級**或**在子表達式的支撐列表中」。你在一個子表達式的支撐列表中使用它。哪個是允許的。 – Andrie
你必須竭盡全力去尋找既不是頂層也不在大括號內的表達式。這是一個。你有時想把一個賦值包裝在try塊中:try(x < - f())'很好,但是try(x = f(x))不是 - 你需要改變賦值運算符或添加大括號。 –