data.table引入了:=运算符.为什么不超载< - ?
我遇到了流行的data.table包装,有一件事特别引起了我的兴趣.它有一个就地分配操作符
:=
这在基础R中没有定义.事实上,如果你没有加载data.table包,如果你试图使用它(例如a := 2),它会引发错误:
错误:无法找到功能
":="
另外,为什么:=工作?为什么R允许您定义:=为中缀运算符,而其他每个中缀函数都必须被包围%%,例如
`:=` <- function(a, b) {
paste(a,b)
}
"abc" := "def"
Run Code Online (Sandbox Code Playgroud)
显然,它并不是%function.name%用于定义中缀函数的替代语法.正在data.table利用R的一些解析怪癖?这是一个黑客?它将来会被"修补"吗?