2013-10-22 10 views
6

data frames के लिए na.printoption नहीं है। एनएएस के प्रदर्शन को दबाने के लिए कोई कामकाज है?डेटा फ्रेम प्रिंट करते समय NA प्रिंट न करें

नमूना डेटा फ्रेम: में

df <- data.frame(
     x=c("a","b","c","d"), 
     a=c(1,1,1,1), 
     b=c(1,1,1,NA), 
     c=c(1,1,NA,NA), 
     d=c(1,NA,NA,NA))  
df 

परिणाम:

x a b c d 
1 a 1 1 1 1 
2 b 1 1 1 NA 
3 c 1 1 NA NA 
4 d 1 NA NA NA 

लेकिन मैं चाहते हैं दिखाने के लिए:

x a b c d 
1 a 1 1 1 1 
2 b 1 1 1 
3 c 1 1 
4 d 1 
+3

चेतावनी में: सुनिश्चित करें कि आप और अपने पाठकों के सोच में गुमराह कर रहे हैं जी रिक्त स्थानों में या तो "कुछ भी नहीं" या "शून्य" (जैसे एक्सेल खुशी से करता है) है। अगर यह पूरी तरह से प्रकाशन के लिए है, ठीक है; अन्यथा सावधान रहें। –

उत्तर

7

आप (इस तकनीक print.dist S3 विधि में प्रयोग किया जाता है)

cf <- format(dat) ## use format to set other options like digits, justify , ... 
cf[is.na(dat)] <- "" 
cf 
    x a b c d 
1 a 1 1 1 1 
2 b 1 1 1 
3 c 1 1  
4 d 1  
3

आप उपयोग कर सकते हैं write.table:

write.table(dfr,sep="\t",col.names=NA,na="") 
""  "x"  "a"  "b"  "c"  "d" 
"1"  "a"  1  1  1  1 
"2"  "b"  1  1  1  
"3"  "c"  1  1    
"4"  "d"  1 
5

नहीं है, लेकिन आप एक मैट्रिक्स पहले करने के लिए मजबूर करने के लिए है "" से लापता मूल्यों की जगह ले सकता ...

print(as.matrix(df) , na.print = "" , quote = FALSE) 
    x a b c d 
[1,] a 1 1 1 1 
[2,] b 1 1 1 
[3,] c 1 1  
[4,] d 1 

सचेतक यह एक छोटे समारोह यदि आप चाहें तो ...

nona <- function(x){ 
    print(as.matrix(x) , na.print = "" , quote = FALSE) 
} 
संबंधित मुद्दे