R';s read.csv()忽略行

R';s read.csv()忽略行,r,read.csv,R,Read.csv,在R中,我试图读取大约42900行的基本CSV文件(由Unix的wc-l确认)。有关守则如下: vecs <- read.csv("feature_vectors.txt", header=FALSE, nrows=50000) 指示生成的数据帧的行数约为17000行。这是内存问题吗?每一行由一个~30个字符的哈希代码、一个~30个字符的字符串和3个整数组成,因此文件的总大小只有4MB左右 若相关的话,我还应该注意到很多行都缺少字段 谢谢你的帮助 使用count.fields,这类问题通

在R中,我试图读取大约42900行的基本CSV文件(由Unix的wc-l确认)。有关守则如下:

vecs <- read.csv("feature_vectors.txt", header=FALSE, nrows=50000)
指示生成的数据帧的行数约为17000行。这是内存问题吗?每一行由一个~30个字符的哈希代码、一个~30个字符的字符串和3个整数组成,因此文件的总大小只有4MB左右

若相关的话,我还应该注意到很多行都缺少字段


谢谢你的帮助

使用
count.fields
,这类问题通常很容易解决,它告诉您如果调用
read.csv
,结果数据框将有多少列

(n_fields <- count.fields("feature_vectors.txt"))
在这种情况下,请查看与预期不同的
n_字段的值:问题发生在这些行中


正如Justin提到的,一个常见的问题是不匹配的引用。打开您的CSV文件,找出字符串是如何引用的。然后调用
read.csv
,指定
quote
参数。

我猜您已经嵌入了不匹配的
。因此,您的一些行实际上比它们应该长得多。我会执行类似于
应用的操作(vecs,2,function(x),max(nchar(as.character(x)))
检查。

是否查看导入的行是否正确导入?我猜您嵌入了不匹配的
。因此,您的一些行实际上比它们应该的长得多。我会执行类似
应用的操作(vecs,2,function(x),max(nchar(as.character(x)))
检查。是的!贾斯汀知道了。添加
quote=“”
修复了问题。@贾斯汀,请将此作为答案,以便卡达诺能够接受它作为他问题的正确解决方案。:)对于记录,如果
fill=TRUE
并且前五行之后的行比前五行中的任何行都有更多字段,那么
read.table
也会做一些非常糟糕的事情……这在帮助文件中被间接引用。。。
(n_fields <- count.fields("feature_vectors.txt"))
if(any(diff(n_fields)))
{
  warning("There's a problem with the file")
}