3

我有一个包含 ~200 列和 ~170K 行的 csv 文件。数据已经过广泛的修饰,我知道它格式正确。当 read.table 完成时,我看到大约一半的行已被导入。没有警告或错误。我设置了选项(警告 = 2)。我正在使用 64 位最新版本,并将内存限制增加到 10gig。在这里挠头……不知道如何继续调试。

编辑
当我说一半文件时,我不是指前半部分。最后一次观察读取是在文件的末尾……所以它看起来是随机的。

4

3 回答 3

11

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

于 2011-04-16T06:39:52.593 回答
2

在我如何处理它是一次读取一定数量的行然后在事后合并之前,我遇到了这个问题。

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

df <- rbind(df1,df2) 
rm(df1,df2)
于 2011-04-16T06:07:23.287 回答
1

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

我对 txt 文件进行了全局搜索和替换,将双引号 (") 替换为单引号 ('),解决了问题(然后读取所有行而不中止)。

于 2012-04-05T20:42:47.347 回答