在R,我想读的约42900行的基本CSV文件(Unix的厕所-l确认)。 相关的代码是
vecs <- read.csv("feature_vectors.txt", header=FALSE, nrows=50000)
其中NROWS轻微高估,因为何乐而不为。 然而,
>> dim(vecs)
[1] 16853 5
这表明所得到的数据帧具有17000行的数量级上。 这是内存的问题? 每行包括的〜30个字符的散列码,一个30〜文字串,和3点的整数,因此该文件的总大小仅约为4MB。
如果是相关的,我也应该注意到,很多行有缺失的领域。
谢谢你的帮助!
这类问题往往容易使用解决count.fields
,它告诉你多少列所得到的数据帧将不得不如果你叫read.csv
。
(n_fields <- count.fields("feature_vectors.txt"))
如果不是所有n_fields的值是相同的,你有问题。
if(any(diff(n_fields)))
{
warning("There's a problem with the file")
}
在这种情况下看的价值n_fields
是对预期的不同:发生在这些行的问题。
至于贾斯汀提到,一个常见的问题是不匹配的引号。 打开您的CSV文件,并找出字符串如何引用那里。 然后调用read.csv
,指定quote
参数。
我的猜测是,你已经嵌入无与伦比的"
。所以,你的一些行比他们应该是真正要长得多。我会做一些事情的类似apply(vecs, 2, function(x), max(nchar(as.character(x)))
进行检查。