回复 第18楼 的 PHoward:这事情在R的各种社区被讨论过无数遍了,我一直坚信这种“无论在何处都可以赋值”的符号是很可怕的,因为它的法力太大了,法力大的东西不咬人则已,一口咬下去后果会很严重(而且<-咬了你还不会报错,因为它无论在哪里都可以赋值,无论你想不想赋值)。在该传参数的地方赋值这种写法应该尽量避免,length(x <- seq(1, 10))尽量分两步写成
x = seq(1, 10)<br />
length(x)
</p>
只要把赋值独立写出来,那么等号就没有任何问题;这事情在绝大多数其它语言中都不存在,这又是R奇异的一个地方。
我每次用的一个反例就是这位用R数十年的老爷子,到公元2011年了还被<-咬了一口,还不明所以,到R开发者邮件列表里问: http://markmail.org/thread/tgt33474bkxz2hep