简体   繁体   English

write.table将NaNs转换为NA

[英]write.table converting NaNs to NA

I have a data frame 我有一个数据框

a = data.frame("a"=c(1,2,3,NA,NaN,6),"b"=c(NA,NA,NaN,1,2,3),"c"=c(1,2,NA,NA,5,6))

I am writing it to a file 我正在把它写到一个文件中

write.table(a,file="t.txt",row.names=FALSE,quote=FALSE,sep="\t")

Its converting "NaN" to "NA". 它将“NaN”转换为“NA”。 I want to retain the original values. 我想保留原始值。 How can I do that? 我怎样才能做到这一点? I want to keep NaN and NA in my t.txt. 我想在我的t.txt中保留NaN和NA。 But I get all NA in my t.txt 但是我在t.txt中获得了所有NA

I'm not sure there's a way to do it directly, but you can always convert the columns to character, then write it (since you're using quote=FALSE ). 我不确定是否可以直接执行此操作,但您始终可以将列转换为字符,然后编写它(因为您使用的是quote=FALSE )。

> a[] <- lapply(a, as.character)
> write.table(a,file="t.txt",row.names=FALSE,quote=FALSE,sep="\t")
> str(read.table("t.txt",header=TRUE))
'data.frame':   6 obs. of  3 variables:
 $ a: num  1 2 3 NA NaN 6
 $ b: num  NA NA NaN 1 2 3
 $ c: int  1 2 NA NA 5 6

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM