मुझे गुम मूल्यों के प्रकार निर्दिष्ट करने में दिलचस्पी है। मेरे पास डेटा है जिसमें विभिन्न प्रकार के गायब हैं और मैं इन मानों को आर में गायब होने की कोशिश कर रहा हूं, लेकिन मैं एक समाधान की तलाश में हूं, मैं अभी भी उनके बीच अंतर कर सकता हूं।विभिन्न प्रकार के लापता मान निर्दिष्ट करें (एनएएस)
,
table(df$a,df$g)
# C K M Y
# Blue 0 0 1 2
# Don't know/Not sure 0 0 0 1
# Green 2 1 2 0
# Red 1 0 0 3
# Refused 1 1 2 0
# Unknown 0 0 3 0
और
मैं कुछ डेटा है कि इस तरह दिखता है,set.seed(667)
df <- data.frame(a = sample(c("Don't know/Not sure","Unknown","Refused","Blue", "Red", "Green"), 20, rep=TRUE), b = sample(c(1, 2, 3, 77, 88, 99), 10, rep=TRUE), f = round(rnorm(n=10, mean=.90, sd=.08), digits = 2), g = sample(c("C","M","Y","K"), 10, rep=TRUE)); df
# a b f g
# 1 Unknown 2 0.78 M
# 2 Refused 2 0.87 M
# 3 Red 77 0.82 Y
# 4 Red 99 0.78 Y
# 5 Green 77 0.97 M
# 6 Green 3 0.99 K
# 7 Red 3 0.99 Y
# 8 Green 88 0.84 C
# 9 Unknown 99 1.08 M
# 10 Refused 99 0.81 C
# 11 Blue 2 0.78 M
# 12 Green 2 0.87 M
# 13 Blue 77 0.82 Y
# 14 Don't know/Not sure 99 0.78 Y
# 15 Unknown 77 0.97 M
# 16 Refused 3 0.99 K
# 17 Blue 3 0.99 Y
# 18 Green 88 0.84 C
# 19 Refused 99 1.08 M
# 20 Red 99 0.81 C
मैं अब दो तालिकाओं करते हैं तो मेरी लापता मूल्यों ("Don't know/Not sure","Unknown","Refused"
और 77, 88, 99
) नियमित रूप से डेटा के रूप में शामिल किए गए हैं है कहो
table(df$b,df$g)
# C K M Y
# 2 0 0 4 0
# 3 0 2 0 2
# 77 0 0 2 2
# 88 2 0 0 0
# 99 2 0 2 2
अब मैं तीन कारक स्तररिकोड करता हूं <NA>
is.na(df[,c("a")]) <- df[,c("a")]=="Don't know/Not sure"|df[,c("a")]=="Unknown"|df[,c("a")]=="Refused"
में ६६६४२५३२१० और निकालने के खाली स्तरों
df$a <- factor(df$a)
और एक ही संख्यात्मक मान 77, 88,
और 99
is.na(df) <- df=="77"|df=="88"|df=="99"
table(df$a, df$g, useNA = "always")
# C K M Y <NA>
# Blue 0 0 1 2 0
# Green 2 1 2 0 0
# Red 1 0 0 3 0
# <NA> 1 1 5 1 0
table(df$b,df$g, useNA = "always")
# C K M Y <NA>
# 2 0 0 4 0 0
# 3 0 2 0 2 0
# <NA> 4 0 4 4 0
अब लापता श्रेणियों NA
में पुनःकूटित कर रहे हैं के साथ किया जाता है, लेकिन वे सभी एक साथ लम्बे हुए हैं। क्या गायब होने के रूप में कुछ रिकोड करने का कोई तरीका है, लेकिन मूल मानों को बनाए रखें? मैं आर 0 धागा "Don't know/Not sure","Unknown","Refused"
और 77, 88, 99
लापता होने के लिए चाहता हूं, लेकिन मैं अभी भी चर में जानकारी प्राप्त करने में सक्षम होना चाहता हूं।
'isf' नामक 'df' में एक और कॉलम जोड़ने के बारे में, यदि मूल्य गुम है तो सत्य होगा? या 'isNA' कॉलम सीधे' NA' और '0' पकड़ सकता है। यह आपके शेष कोड पर निर्भर करता है। – Nishanth
यह ठीक से काम करेगा, लेकिन यह एक समाधान है जो एक समाधान है जो * मेरे शेष कोड के साथ * निर्बाध * काम करेगा-जैसा कि आप भी इंगित करते हैं। क्या आप इसे एक उदाहरण में प्रदर्शित करना चाहते हैं? –
शेष कोड पर प्रभाव की भविष्यवाणी करना मुश्किल है। हो सकता है कि आप अपना 'my.table' लिख सकें जो 'my.is.na' का उपयोग करता है जो" पता नहीं/सुनिश्चित नहीं है "," अज्ञात "," अस्वीकार "के लिए' TRUE' 'देता है – Nishanth