Warum ist: = als Infix-Operator erlaubt?
Ich bin auf das beliebte @ gestoßdata.table
Paket und eine Sache hat mich besonders fasziniert. Es hat einen In-Place-Zuweisungsoperator
: =
Dies ist nicht in der Basis R definiert. Wenn Sie das @ nicht geladen habdata.table
package, es hätte einen Fehler ausgelöst, wenn Sie versucht hätten, ihn zu verwenden (z. B.a := 2
) mit der Nachricht:
Error: Funktion konnte nicht gefunden werden":="
Auch, warum macht:=
Arbeit? Warum können Sie mit R @ definiere:=
als Infixoperator, während jede andere Infixfunktion von @ umgeben sein mu%%
, z.B
`:=` <- function(a, b) {
paste(a,b)
}
"abc" := "def"
Es ist offensichtlich nicht als alternative Syntax zu @ gedach%function.name%
zur Definition von Infix-Funktionen. Istdata.table
Ausnutzung einiger Parsing-Macken von R? Ist es ein Hack? Wird es in Zukunft "gepatcht"?