Denken Sie daran, in R ist alles Operation ein Funktionsaufruf (daher auch die Zuweisung Operationen) und alles, was existiert, ist ein Objekt. Ersatzfunktionen wirken, als ob sie ihre Argumente anstelle wie modifizieren in
colnames(d) <- c("Input", "Output")
Sie haben die Kennung <-
am Ende ihres Namens und zurück eine modifizierte Kopie des Arguments-Objekt (nicht-primitive Ersatzfunktionen) oder das gleiche Objekt (primitive Ersatzfunktionen)
An der R Aufforderung arbeiten folgendes nicht:
> `second` <- function(x, value) {
+ x[2] <- value
+ x
+ }
> x <- 1:10
> x
[1] 1 2 3 4 5 6 7 8 9 10
> second(x) <- 9
Error in second(x) <- 9: couldn't find function "second<-"
Wie Sie sehen können, R sucht die Umwelt nicht für 012.373.aber für second<-
. So können das Gleiche tun, aber unter Verwendung eines solchen Funktionskennung statt:
> `second<-` <- function(x, value) {
+ x[2] <- value
+ x
+ }
Nun wird die Zuordnung in der zweiten Position des Vektors funktioniert:
> second(x) <- 9
> x
[1] 1 9 3 4 5 6 7 8 9 10
ich auch ein einfaches Skript geschrieben aufzulisten alle Ersatzfunktionen im R-Basispaket, find it here.
Dies ist ein vollkommen akzeptables Q für SO –
mögliche Duplikate von ['Levels <-' (Welche Zauberei ist das?] (Http://stackoverflow.com/questions/10449366/levels-what-scorery-is-this) –
Siehe ** Erweitern R.- John Chambers (2016) **: * Seite 73 bis 79 des Kapitels 5 * –