的r read.csv()省略行(R's read.csv() omitting rows)

2019-09-19 01:53发布

在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。

如果是相关的,我也应该注意到,很多行有缺失的领域。

谢谢你的帮助!

Answer 1:

这类问题往往容易使用解决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参数。



Answer 2:

我的猜测是,你已经嵌入无与伦比的" 。所以,你的一些行比他们应该是真正要长得多。我会做一些事情的类似apply(vecs, 2, function(x), max(nchar(as.character(x)))进行检查。



文章来源: R's read.csv() omitting rows
标签: r read.csv