首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R的read.csv()省略行

R的read.csv()省略行
EN

Stack Overflow用户
提问于 2012-07-04 06:59:43
回答 2查看 4.7K关注 0票数 4

在R中,我尝试读入一个大约42,900行的基本CSV文件(由Unix的wc -l确认)。相关代码为

代码语言:javascript
复制
vecs <- read.csv("feature_vectors.txt", header=FALSE, nrows=50000)

其中nrows是稍微高估的,因为为什么不。然而,

代码语言:javascript
复制
>> dim(vecs)
[1] 16853     5

指示所得到的数据帧具有大约17,000行。这是内存问题吗?每行由~30个字符的哈希码、~30个字符串和3个整数组成,因此文件的总大小只有4MB左右。

如果这是相关的,我还应该注意到很多行都缺少字段。

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-04 21:15:33

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

代码语言:javascript
复制
(n_fields <- count.fields("feature_vectors.txt"))

如果不是所有n_fields的值都相同,那么就有问题了。

代码语言:javascript
复制
if(any(diff(n_fields)))
{
  warning("There's a problem with the file")
}

在这种情况下,查看与预期不同的n_fields值:问题发生在这些行中。

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

票数 4
EN

Stack Overflow用户

发布于 2012-07-04 22:40:53

我的猜测是您嵌入了无与伦比的"。所以你的一些行实际上比它们应有的长度要长得多。我会做一些像apply(vecs, 2, function(x), max(nchar(as.character(x)))这样的检查。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11320372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档