R - write.table()创建的表格不被fread()

时间:2015-04-25 18:04:48

标签: r data.table

我在R中有一个data.table,我试图写出.txt文件,然后输入回R。

这是6.5M观测和20个变量的大型表,所以我想使用fread()。

当我使用

write.table(data, file = "data.txt")

大约2.2GB的表格用data.txt编写。在手动检查它时,我可以看到有列名称,它被" ",并且在字符变量上有引号。所以一切都应该没问题。

然而,

data <- fread("data.txt")

返回6.5M观测值和1个变量的data.table。好吧,也许由于某种原因fread()不能自动理解分隔符字符串:

data <- fread("data.txt", sep = " ")

现在所有数据都在适当的变量中,但是

  • R添加了一个不必要的行号列
  • 在我的一个(仅一个)列中,所有NA已被9218868437227407266取代
  • 缺少所有变量名称

也许fread()不会以某种方式识别标题。

data <- fread("data.txt", sep = " ", header = T)

现在我的第一组观察是我的专栏名称。不太有用。

我完全不知所措。有谁知道这里发生了什么?

编辑:

row.names = F解决了姓名问题,感谢Ananda Mahto。

datasub <- data[runif(1000,1,6497651), ]
write.table(datasub, file = "datasub.txt", row.names = F)
fread("datasub.txt")

fread()似乎适用于较小的数据集。

编辑:

以下是我在上面创建的数据子集:

https://github.com/cbcoursera1/ExploratoryDataAnalysisProject2/blob/master/datasub.txt

该数据来自国家排放清单(NEI),由EPA提供。有关更多信息,请访问:

http://www.epa.gov/ttn/chief/eiinformation.html

编辑:

我无法再重现此问题。可能row.names = F解决了这个问题,或者可能重启R /清除我的环境/随机解决问题。

0 个答案:

没有答案