2013-10-22 19 views
6

Đối với data frames không có na.printoption. Có cách giải quyết nào để ngăn chặn việc hiển thị các NA không?Không in NA khi in khung dữ liệu

khung dữ liệu

mẫu:

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 

Kết quả trong:

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 

Nhưng tôi muốn hiển thị:

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

Cảnh báo: đảm bảo bạn và người đọc của bạn không bị lừa dối trong suy nghĩ g có hoặc là "không có gì cả" hoặc "số không" (như Excel vui vẻ làm) trong các vị trí trống. Nếu điều này là hoàn toàn cho xuất bản, phạt tiền; nếu không hãy cẩn thận. –

Trả lời

7

Bạn có thể thay thế các giá trị thiếu bằng "" (kỹ thuật này được sử dụng trong print.dist S3 phương pháp)

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

Bạn có thể sử dụng 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

Có, nhưng bạn phải ép buộc vào một ma trận đầu tiên ...

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 

Whip nó thành một chức năng nhỏ nếu bạn thích ...

nona <- function(x){ 
    print(as.matrix(x) , na.print = "" , quote = FALSE) 
} 
Các vấn đề liên quan