別の質問への回答として、@ 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<-
あり[<-
ます。