एक अन्य प्रश्न के उत्तर में, @ मारेक ने निम्नलिखित समाधान पोस्ट किया: https://stackoverflow.com/a/10432263//36366
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<-
और भी है[<-
।