다른 질문에 대한 답변으로 @Marek은 다음 솔루션을 게시했습니다. 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)
)
출력으로 생성됩니다.
[1] Generic Generic Bayer Bayer Advil Tylenol Generic Advil Bayer Generic Advil Generic Advil Tylenol
[15] Generic Bayer Generic Advil Bayer Bayer
이것은 단지 벡터의 출력물이므로 저장하기 위해 훨씬 더 혼란 스러울 수 있습니다.
res <- `levels<-`(
factor(dat$product),
list(Tylenol=1:3, Advil=4:6, Bayer=7:9, Generic=10:12)
)
분명히 이것은 레벨 함수에 대한 일종의 호출이지만 여기서 무슨 일이 일어나고 있는지 전혀 모릅니다. 이런 종류의 마법의 용어는 무엇이며이 영역에서 마법 능력을 어떻게 향상시킬 수 있습니까?
structure(...)대신 구성에 대한 이유가 data.frame(product = c(11L, 11L, ..., 8L))있습니까? (만약 마법이
"levels<-"함수에 대한 호출입니다 . function (x, value) .Primitive("levels<-"), 일종의 X %in% Y약어입니다 "%in%"(X, Y).
names<-및[<-.