R 允许通过<-和进行赋值=。
尽管两个赋值运算符之间存在细微差别,但似乎有一个广泛的共识,即<-比=, as也更好,因为=它也用作将值映射到参数的运算符,因此它的使用可能会导致模棱两可的陈述。下面举例说明了这一点:
> system.time(x <- rnorm(10))
user system elapsed
0 0 0
> system.time(x = rnorm(10))
Error in system.time(x = rnorm(10)) : unused argument(s) (x = rnorm(10))
事实上,Google 风格的代码不允许使用=for assignment(请参阅对此答案的评论以获取相反的观点)。
我也几乎专门<-用作赋值运算符。但是,上一句中的差不多就是这个问题的原因。在=我的代码中充当赋值运算符时,它总是偶然的,如果它导致问题,通常很难发现。
我想知道是否有办法通过关闭分配并让 R 在任何时候用于分配=时抛出错误。=
最佳情况下,这种行为只会发生在全局环境中的代码上,因为在附加的命名空间中很可能有代码=用于分配并且不应该中断。
(这个问题的灵感来自与Jonathan Nelson的讨论)