2013-12-11 8 views
5

मुझे एक डेटाफ्रेम मिला है जिसमें कुछ एनएएस हैं और जब मैं इसमें अनुक्रमित करता हूं तो मैं आर को उस कॉलम में एनएएस को अनदेखा करना चाहता हूं।डेटाफ्रेम में अनुक्रमण करते समय आरए को "अनदेखा" करने के लिए कैसे प्रेरित करें?

fake = data.frame(id = 1:5, 
        color = c('red', NA, NA, 'blue', 'blue'), 
        value = rnorm(5)) 

sub = fake[fake$color != 'red', ] 

    id color  value 
NA NA <NA>   NA 
NA.1 NA <NA>   NA 
4  4 blue -0.3227421 
5  5 blue -1.0196561 

dataframe मैं वापस चाहते हैं:

id color  value 
2 2 <NA> 0.2761862 
3 3 <NA> 1.0029380 
4 4 blue -0.3227421 
5 5 blue -1.0196561 

लेकिन जो भी कारण के लिए, बाहर पूरी पंक्ति आर NAS जब 'रंग' में एक एनए का सामना करना पड़ा है। मैंने 'na.exclude,' 'na.pass,' आदि के साथ टूल किया है, लेकिन ऐसा करने का एक साफ तरीका नहीं मिला है।

+0

अपने प्रश्न के शीर्षक की सामग्री के लिए विरोध किया लगता है। आप नहीं चाहते हैं कि आरए को "अनदेखा" करने के लिए एनए के रूप में पहचान करें और आप चयन कॉलम में एनए के साथ पंक्तियां शामिल करें। –

उत्तर

4
fake[!fake$color %in% "red",] 
# id color  value 
# 2 2 <NA> -1.1341590 
# 3 3 <NA> -0.6181337 
# 4 4 blue 0.6115878 
# 5 5 blue 1.3984797 
+0

बस इस समाधान को पोस्ट करने वाला था। –

2

शायद यह इस मामले में setdiff उपयोग करने के लिए बेहतर है:

fake[setdiff(rownames(fake), which(fake$color == "red")), ] 
# id color  value 
# 2 2 <NA> 1.015132 
# 3 3 <NA> -1.425210 
# 4 4 blue 1.089207 
# 5 5 blue 1.442323 
+1

एफडब्ल्यूआईडब्ल्यू, कारण यह देख रहा था कि परिणाम आपके सबसेट तर्क के परिणामस्वरूप था: 'नकली $ रंग! =' लाल '। चूंकि 'एनए 'तुलनीय नहीं है, इसलिए आप उन दो पंक्तियों को प्राप्त करते हैं। – Justin

2

आप != द्वारा फिसल कर रहे हैं सही बजाय एनए लौटने। यह सफल होने चाहिए:

sub = fake[ is.na(fake$color) | fake$color != 'red', ] 

कुछ भी नहीं के बराबर होती है ==, एनए और इसके अलावा कुछ भी नहीं एनए, नहीं भी लागू नहीं करने के लिए,-बराबर नहीं != है। सूचना:

> is.na(fake$color) | fake$color != 'red' 
[1] FALSE TRUE TRUE TRUE TRUE 

> NA == NA 
[1] NA 

लेकिन एनए के आप दे सकते हैं जब OR का उपयोग करके combinied आप क्या चाहते हैं, |

> NA | TRUE 
[1] TRUE 
संबंधित मुद्दे

 संबंधित मुद्दे