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?