2009-09-08 14 views

उत्तर

1

यदि आप एनए के साथ पंक्तियों को हटाना चाहते हैं तो आप प्रत्येक पंक्ति को जांचने के लिए त्वरित फ़ंक्शन लागू करने के लिए आवेदन() का उपयोग कर सकते हैं। जैसे, अगर आपके मैट्रिक्स एक्स है,

goodIdx <- apply(x, 1, function(r) !any(is.na(r))) 
newX <- x[goodIdx,] 
5

मैं na.rm आमतौर पर केवल कार्यों के भीतर काम करता है, कहते हैं कि के लिए मतलब समारोह में सोचते हैं। मैं complete.cases के साथ जाना होगा: http://stat.ethz.ch/R-manual/R-patched/library/stats/html/complete.cases.htm

मान लीजिए कि आप निम्नलिखित 3x3-मैट्रिक्स डालते हैं:

x <- matrix(c(1:8, NA), 3, 3) 

> x 
    [,1] [,2] [,3] 
[1,] 1 4 7 
[2,] 2 5 8 
[3,] 3 6 NA 

तो आप के साथ इस मैट्रिक्स की पूरी मामलों प्राप्त कर सकते हैं

y <- x[complete.cases(x),] 

> y 
    [,1] [,2] [,3] 
[1,] 1 4 7 
[2,] 2 5 8 

full.cases -फंक्शन वास्तविक मूल्यों का एक वेक्टर देता है जो कहता है कि कोई मामला पूरा हो गया है या नहीं:

> complete.cases(x) 
[1] TRUE TRUE FALSE 

और फिर आप मैट्रिक्स x की पंक्तियों को अनुक्रमित करते हैं और यह कहते हैं कि आप सभी कॉलम चाहते हैं।

6

na.omit() matrices (और डेटा फ्रेम) ले जाएगा और केवल उन पंक्तियों को वापस एनए मूल्यों के साथ वापस ले जाएगा - इसमें complete.cases() आपके लिए FALSE पंक्तियों को हटाकर एक कदम आगे ले जाता है।

> x <- data.frame(c(1,2,3), c(4, NA, 6)) 
> x 
    c.1..2..3. c.4..NA..6. 
1   1   4 
2   2   NA 
3   3   6 
> na.omit(x) 
    c.1..2..3. c.4..NA..6. 
1   1   4 
3   3   6 
संबंधित मुद्दे