다른 질문에 대한 답변으로 @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<-
및[<-
.