¿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?