【发布时间】:2014-09-17 10:46:41
【问题描述】:
我尝试读取从 here 下载的 csv 文件
我使用以下代码阅读
storm_data = read.csv('./data/repdata/StormData.csv',sep=",", stringsAsFactors=F)
它返回 692288 个观察结果和一条错误消息
Warning message:In scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
EOF within quoted string
结果是错误的,因为列值相互混合。
然后我尝试了 read.table 方法
storm_data = read.table('./data/repdata/StormData.csv',sep=",", head=T, stringsAsFactors=F)
并返回错误消息
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, :
line 547364 did not have 37 elements
我从 547364 中取出相邻的行并读入一个单独的文本文件,它读取正常。所以问题并不真正存在,而是在上面的某个地方。
最后,我尝试用 excel 阅读它,它读起来很好(我的 coursera TA 和 read.csv 也是如此)。它运行正常,得到了 903871 行。
我完全不知道如何调试脚本。
这是我的环境信息。 我的R版本是3.1.1,Rstudio版本是0.98.1028.(32位),操作系统是win 8.1(64位)。
PS:我尝试了堆栈溢出的所有相关方法,但没有一个有效。如果我设置quote="",则行错误。 fread 不起作用,因为我在 csv 文件中得到了 \"。
【问题讨论】:
-
检查
quote和read.table的comment.char参数。您的数据中可能有一些"或#。 -
您可能需要重新下载 bzip2 文件。
read.csv的未压缩 d396qusza40orc.cloudfront.net/…(假设这是 Coursera 数据)工作正常(缓慢,但很好)。 -
@hrbrmstr 我确实重新下载了两次。它给了我同样的问题。
-
您是否使用了浏览器
download.file、命令行curl/wget?通过read.csv这里解压后,链接文件可以正常工作。 -
@尼古拉。我试图关闭评论。还是一样。