In einer Antwort auf eine andere Frage hat @Marek die folgende Lösung veröffentlicht: https://stackoverflow.com/a/10432263/636656
dat <- structure(list(product = c(11L, 11L, 9L, 9L, 6L, 1L, 11L, 5L,
7L, 11L, 5L, 11L, 4L, 3L, 10L, 7L, 10L, 5L, 9L, 8L)), .Names = "product", row.names = c(NA, -20L), class = "data.frame")
`levels<-`(
factor(dat$product),
list(Tylenol=1:3, Advil=4:6, Bayer=7:9, Generic=10:12)
)
Was als Ausgabe erzeugt:
[1] Generic Generic Bayer Bayer Advil Tylenol Generic Advil Bayer Generic Advil Generic Advil Tylenol
[15] Generic Bayer Generic Advil Bayer Bayer
Dies ist nur der Ausdruck eines Vektors. Um ihn zu speichern, können Sie das noch verwirrendere tun:
res <- `levels<-`(
factor(dat$product),
list(Tylenol=1:3, Advil=4:6, Bayer=7:9, Generic=10:12)
)
Natürlich ist dies eine Art Aufruf der Level-Funktion, aber ich habe keine Ahnung, was hier gemacht wird. Was ist der Begriff für diese Art von Zauberei und wie erhöhe ich meine magischen Fähigkeiten in diesem Bereich?
structure(...)
Konstrukt anstatt nur data.frame(product = c(11L, 11L, ..., 8L))
? (Wenn dort etwas Magisches passiert, würde ich es auch gerne einsetzen!)
"levels<-"
Funktion: Eine function (x, value) .Primitive("levels<-")
Art Like X %in% Y
ist eine Abkürzung für "%in%"(X, Y)
.
names<-
und[<-
.