`level <-` (Что это за колдовство?
В ответ на другой вопрос @Marek опубликовал следующее решение: https://stackoverflow.com/a/10432263/636656
<code>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) ) </code>
Который производит как вывод:
<code> [1] Generic Generic Bayer Bayer Advil Tylenol Generic Advil Bayer Generic Advil Generic Advil Tylenol [15] Generic Bayer Generic Advil Bayer Bayer </code>
Это всего лишь распечатка вектора, поэтому, чтобы сохранить ее, вы можете сделать еще более запутанным:
<code>res <- `levels<-`( factor(dat$product), list(Tylenol=1:3, Advil=4:6, Bayer=7:9, Generic=10:12) ) </code>
Ясно, что это какой-то вызов функции уровней, но я понятия не имею, что здесь делается. Как называется этот вид магии, и как мне увеличить свои магические способности в этой области?