我遇到了流行的data.table
包裹,特别是一件事让我很感兴趣。它有一个就地赋值运算符
:=
这在基础 R 中没有定义。事实上,如果您没有加载data.table
包,如果您尝试使用它(例如,a := 2
)会引发错误,并显示以下消息:
错误:找不到函数
":="
另外,为什么:=
有效?为什么 R 让您定义:=
为中缀运算符,而其他所有中缀函数都必须被包围%%
,例如
`:=` <- function(a, b) {
paste(a,b)
}
"abc" := "def"
显然,它并不是%function.name%
定义中缀函数的替代语法。是在data.table
利用 R 的一些解析怪癖吗?是黑客吗?以后会“打补丁”吗?