2014-06-29 15 views
5

द्वारा आर गणना एनए क्या कोई व्यक्ति कृपया समझा सकता है कि समूह द्वारा गुम मूल्यों की गणना करने के लिए मुझे कुल फ़ंक्शन का उपयोग करके अलग-अलग उत्तरों क्यों मिलते हैं? साथ ही, देशी आर फ़ंक्शन का उपयोग करके समूह द्वारा गुम मूल्यों को गिनने का एक बेहतर तरीका है?समूह

DF <- data.frame(YEAR=c(2000,2000,2000,2001,2001,2001,2001,2002,2002,2002), X=c(1,NA,3,NA,NA,NA,7,8,9,10)) 
DF 

aggregate(X ~ YEAR, data=DF, function(x) { sum(is.na(x)) }) 
with(DF, aggregate(X, list(YEAR), function(x) { sum(is.na(x)) })) 

aggregate(X ~ YEAR, data=DF, function(x) { sum(! is.na(x)) }) 
with(DF, aggregate(X, list(YEAR), function(x) { sum(! is.na(x)) })) 

उत्तर

10

मदद पृष्ठ ?aggregate पर बताते सूत्र विधि एक तर्क na.action जो na.omit को सेट किया जाता है है।

na.action: एक समारोह जो इंगित करता है कि क्या होने चाहिए जब डेटा NA मान हैं। डिफ़ॉल्ट दिए गए चर में अनुपलब्ध मानों को अनदेखा करना डिफ़ॉल्ट है।

बदलें कि तर्क को NULL या बजाय na.pass आप शायद उम्मीद कर रहे हैं परिणाम प्राप्त करने के:

# aggregate(X ~ YEAR, data=DF, function(x) {sum(is.na(x))}, na.action = na.pass) 
aggregate(X ~ YEAR, data=DF, function(x) {sum(is.na(x))}, na.action = NULL) 
# YEAR X 
# 1 2000 1 
# 2 2001 3 
# 3 2002 0 
-1
library(dplyr) 
library(tidyr) 

#say you want to get missing values from group 1 
dataframe %>% filter(group = 1 & is.na(another_column)) 

#missing values from group 2 
dataframe %>% filter(group = 2 & is.na(another_column))