这个问题困扰着我和我的学生多年,我现在意识到其他人一直在问同样的问题。我推荐<-
作业的库存回复(例如在我的Introduction to Visualising Spatial Data in R中)就是“这是R开发人员使用的,我们信任他们”。
但是,当着名的R开发人员Yihui Xie advocates =
时,我不再确定。
这是一个充分的理由吗?到目前为止我看到赞成<-
的最好理由是“数学家会被x = x + 1
混淆,而不会x <- x + 1
”。很公平,但我认识的大多数数学家也可以理解使用=
进行分配的程序。 (参考:此处的评论http://alyssafrazee.com/introducing-R.html)
另一个原因是=
用于函数中的参数,因此<-
应该在函数调用中使用。但=
失败的确切背景是什么?在真正需要的情况下保留<-
/ ->
没有优势,例如:
在一个功能中:
system.time(x <- rnorm(10e6))
system.time(x = rnorm(10e6)) # error
system.time({x = rnorm(10e6)}) # no error
右手任务:
library("dplyr")
data_frame(x = 1:26, y = letters) %>%
filter(x %% 3 == 0) %>%
top_n(n = 3, wt = x) -> df
df