冒号等于R中的运算符?新语法?

Chr*_*ris 11 r colon-equals

在阅读http://ggvis.rstudio.com/interactivity.html时,我注意到代码中有:=洒在其中.我假设这是一种为函数提供参数的新方法?究竟是什么?

mtcars %>%
  ggvis(~wt, ~mpg, size := input_slider(10, 1000)) %>%
  layer_points(fill := "red") %>%
  layer_points(stroke := "black", fill := NA)
Run Code Online (Sandbox Code Playgroud)

maj*_*maj 12

在这种情况下,:=只是用于分配固定值的ggvis'语法; 相反,=这里将用于分配变量值.正如您在代码示例中可能已经注意到的那样,在右侧,只有"red"或NA这样的值,因此:=在此上下文中使用的是正确的运算符.例如,如果您希望"size"依赖于"mpg"列,您可以size = mpg使用通常的等号来编写.

我承认我不熟悉:=是否还有其他包采用了这个运算符.

来自http://ggvis.rstudio.com/properties-scales.html(有关更多示例和信息,请参阅参考资料):

"props()函数使用=运算符进行映射(缩放),使用:=运算符进行设置(未缩放).它还使用〜运算符来指示应该在数据中计算表达式(并且在ggvis中,数据可以改变);没有〜运算符,表达式会立即在当前环境中进行求值.一般来说,你需要对数据中的变量使用〜,而不是将它用作常量值."

  • 包data.table使用`:=`语法在`j`语句中赋值.在`data.table`上下文中,这是为了避免创建整个对象的副本(就像`<-`或`=`一样),这对于大对象来说可能非常慢. (8认同)
  • @Chris:是的,您只使用`\`:= \`= function(x,y){...}`,其中`...`可能使用[非标准评估技巧](http:// adv- r.had.co.nz/Computing-on-the-language.html),例如`substitute()`和朋友。(迟一点总比一点好) (3认同)