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))不是 - 你需要改变赋值运算符或添加大括号。 –