यहाँ मेरी डेटा का एक स्नैपशॉट है:आर, मे बदलें और "कॉलम के लिए असमर्थित प्रकार NILSXP"
structure(list(CPUBID = c(1000001L, 1000002L, 1000003L, 10001L,
1000201L, 1000203L, 10003L, 1000801L, 1000802L, 1000803L, 1001L,
1001101L, 1001102L, 1001601L, 1002401L, 1002402L, 1002403L, 1002601L,
1002602L, 1002604L), MPUBID = c(10000L, 10000L, 10000L, 100L,
10002L, 10002L, 100L, 10008L, 10008L, 10008L, 10L, 10011L, 10011L,
10016L, 10024L, 10024L, 10024L, 10026L, 10026L, 10026L), CYRB = c(1982L,
1984L, 1988L, 1985L, 1986L, 1992L, 1993L, 1984L, 1986L, 1988L,
1983L, 1987L, 1992L, 1977L, 1981L, 1984L, 1998L, 1980L, 1981L,
1984L), twinfam = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), SAMESEX = c(1L, 1L, 1L,
1L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L), top25 = c(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
0, 0, 0, 0), top5 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0), quantity = c(1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1)), .Names = c("CPUBID", "MPUBID",
"CYRB", "twinfam", "SAMESEX", "top25", "top5", "quantity"), row.names = c(NA,
20L), class = "data.frame")
मैं twinfam (परिवार में जुड़वां) और SAMESEX उपयोग करने के लिए कोशिश कर रहा हूँ (पहले दो पैदा हुए बच्चों एक ही लिंग) बाइनरी चर 4 संभावित मान पर एक चौथे चर लेता है बनाने के लिए:
1 यदि SAMESEX == 0 & twinfam == 0
2 यदि SAMESEX == 1 & twinfam == 0
3 अगर SAMESEX == 0 & twinfam == 1
4 अगर SAMESEX == 1 & twinfam == 1
थोड़ा चारों ओर खेलने के बाद मैं उपयोग करने की कोशिश:
df <- df %>% mutate(both = for (i in 1:nrow(PIATmathreg6)) {
if(twinfam[i] == 0 & SAMESEX[i] == 0) both = 1
else if(twinfam[i] == 0 & SAMESEX[i] == 1) both = 2
else if(twinfam[i] == 1 & SAMESEX[i] == 0) both = 3
else both = 4})
लेकिन मैं त्रुटि मिलती है:
Error: Unsupported type NILSXP for column "both"
और इस त्रुटि को हल करने के लिए प्रतीत नहीं कर सकते हैं। मुझे यह त्रुटि क्यों मिलती है, और इसे कैसे हल किया जा सकता है, इस पर कोई सलाह दी जाएगी!
@akrun लंबे समय तक कोई बात नहीं। जानकारी के लिए धन्यवाद। जून में वापस आर ब्लॉगर्स पर हैडली की पोस्ट 'case_when()' के बारे में मेरा आखिरी अपडेट था। अब मुझे पता है कि समारोह 'mutate() 'में काम कर रहा है। धन्यवाद। :) – jazzurro
आपको फिर से देखने के लिए अच्छा लगा। आशा है आप अच्छे होंगे। – akrun
@akrun मैं अच्छा कर रहा हूं। मेरे पास अभी खुद को प्रतिबद्ध करने का समय नहीं है क्योंकि मैं अपने काम के कारण होता था। लेकिन सितंबर में मैं यहां और अधिक रहूंगा क्योंकि मेरे पास समय है। वैसे, 'mydf%>% mutate (दोनों = case_when (। $ SAMESEX == 0 और $ twinfam == 0 ~ 1, ...)' काम करता है। '' Mutate (mydf, both = case_when (। $ SAMESEX == 0 और $ twinfam == 0 ~ 1, ...) 'काम नहीं करता है। क्या आपको पता है कि यह मामला क्यों है? – jazzurro