【问题标题】:Assignment operators in R: '<-' and '<<-'R 中的赋值运算符:'<-' 和 '<<-'
【发布时间】:2014-03-23 13:56:55
【问题描述】:

R中赋值运算符&lt;-&lt;&lt;-有什么区别?

什么时候应该使用&lt;&lt;-

【问题讨论】:

  • 之前有人问过这个问题:stackoverflow.com/questions/5785290/…
  • 另见thisthis。后者尤其是一个非常接近的副本。
  • 我会忘记&lt;&lt;-,我从未见过它的有效用途。不需要全局变量,而且对于丑陋、难以阅读和维护的代码。
  • @PaulHiemstra,你不认为闭包是有效的用途吗?我特别想到&lt;&lt;- 不分配给全局环境,而是分配给中间封闭环境的情况。
  • @BrodieG 说&lt;&lt;- 没有没有的位置可能是不正确的(尽管在我几年的 R 编程中我没有使用过&lt;&lt;-)。但在绝大多数情况下,这是不必要的。此外,它适用的情况可能是相当复杂的情况(你提到嵌套环境),而&lt;&lt;-在简单的情况下更容易被新手程序员滥用。

标签: r variable-assignment


【解决方案1】:

&lt;- 将对象分配给评估它的环境(本地范围)。 &lt;&lt;- 将对象分配给在其中找到名称的下一个最高环境,如果没有找到名称,则分配给全局命名空间。请参阅文档here

&lt;&lt;- 通常只用在函数中,但要小心。 &lt;&lt;- 可能更难调试,因为更难跟踪分配的评估。最好用return 语句编写函数。

Hadley Wickham 在他的Advanced R Programming Book 中有很好的解释。

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 2014-06-12
    • 2010-12-17
    • 2013-06-28
    • 2011-03-11
    • 2015-03-19
    相关资源
    最近更新 更多