2011-04-16 26 views
3

我有一个csv文件,有〜200列和〜170K行。数据已经广泛培养,并且我知道它是格式良好的。当read.table完成时,我看到大约一半的行已经被导入。没有警告或错误。我设置了选项(警告= 2)。我正在使用64位最新版本,并将内存限制增加到10gig。在这里抓我的头...不知道如何进行调试。R - read.table导入数据集的一半 - 没有错误也没有警告

编辑
当我说一半的文件,我的意思不是上半年。阅读的最后一个观察结果是文件的末尾......所以它看起来是随机的。

+1

是它只是得到文件的前半部分,或者看起来像是随机的?你不会说,也不重要。 – Spacedman 2011-04-16 08:53:00

+0

@Spacedman - 很好的问题!现在看起来是随机的,我检查过了。 – SFun28 2011-04-16 12:59:19

+0

看起来你现在已经得到了答案,我可能会做的第一件事是在开头几行看到哪些将被读取或者不读取,在一个大数据集之前总是值得一些工作! – Spacedman 2011-04-16 14:31:27

回答

9

您可能必须在文件中注释字符(#)(尝试设置选项comment.char = ""函数read.table中)。另外,请检查报价选项是否设置正确。

+1

我有comment.char =“”,但只要我设置了报价=“”我是能够读取所有观察结果! – SFun28 2011-04-16 13:12:08

2

在我接触它之前,我曾经遇到过这个问题,一次读取一定数量的行,然后在事实之后合并。

df1 <- read.csv(..., nrows=85000) 
df2 <- read.csv(..., skip=84999, nrows=85000) 
colnames(df1) <- colnames(df2) 

df <- rbind(df1,df2) 
rm(df1,df2) 
1

我有一个类似的问题,当阅读一个大的txt文件中有一个“|”分隔器。关于txt文件散布的是一些包含引号(“)的文本块,它导致read.xxx函数在先前的记录中停止而没有发生错误。请注意,提到的文本块没有用双引号括起来;相反,它们只是包含一个双引号字符在这里和那里(“),它绊倒了它。

我做了全局搜索和替换的txt文件,以一个单引号(')替换双引号(“),解决问题(当时所有行被读取时不中断)。

相关问题