Por que: = é permitido como operador de infix?

Me deparei com o populardata.table pacote e uma coisa em particular me intrigou. Possui um operador de atribuição no local

: =

Isso não está definido na base R. De fato, se você não carregou odata.table pacote, teria gerado um erro se você tentasse usá-lo (por exemplo,a := 2) com a mensagem:

Erro: não foi possível encontrar a função":="

Além disso, por que:= trabalhos? Por que R permite definir:= como operador de infix, enquanto todas as outras funções de infix precisam estar cercadas%%, por exemplo.

`:=` <- function(a, b) {
   paste(a,b)
}

"abc" := "def"

Claramente, não pretende ser uma sintaxe alternativa para%function.name% para definir funções infix. Édata.table explorando algumas peculiaridades de análise do R? É um hack? Será "corrigido" no futuro?

questionAnswers(2)

yourAnswerToTheQuestion