¿Por qué es: = permitido como operador infijo?

Me he encontrado con el populardata.table paquete y una cosa en particular me intrigó. Tiene un operador de asignación en el lugar

: =

Esto no está definido en la base R. De hecho, si no cargó eldata.table paquete, habría provocado un error si hubiera intentado usarlo (por ejemplo,a := 2) con el mensaje:

Error: no se pudo encontrar la función":="

Además, ¿por qué:= ¿trabajo? ¿Por qué R te permite definir:= como operador infijo, mientras que todas las demás funciones de infijo deben estar rodeadas por%%, p.ej.

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

"abc" := "def"

Claramente, no está destinado a ser una sintaxis alternativa a%function.name% para definir funciones infijadas. Esdata.table explotando algunas peculiaridades de análisis de R? ¿Es un truco? ¿Será "parcheado" en el futuro?

Respuestas a la pregunta(2)

Su respuesta a la pregunta