【问题标题】:read.csv warning 'EOF within quoted string' in R but successful read in EXCELR中的read.csv警告“引用字符串中的EOF”,但在EXCEL中成功读取
【发布时间】: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 文件中得到了 \"。

【问题讨论】:

  • 检查quoteread.tablecomment.char 参数。您的数据中可能有一些"#
  • 您可能需要重新下载 bzip2 文件。 read.csv 的未压缩 d396qusza40orc.cloudfront.net/…(假设这是 Coursera 数据)工作正常(缓慢,但很好)。
  • @hrbrmstr 我确实重新下载了两次。它给了我同样的问题。
  • 您是否使用了浏览器download.file、命令行curl/wget?通过read.csv这里解压后,链接文件可以正常工作。
  • @尼古拉。我试图关闭评论。还是一样。

标签: r csv


【解决方案1】:

我遇到了同样的错误,经过数小时的搜索,我认为这会给你带来一些好处。

Sys.setlocale("LC_ALL", "English")

详情可以在这里找到:

coursera

【讨论】:

  • 链接已过期
猜你喜欢
  • 2018-10-23
  • 2013-06-29
  • 1970-01-01
  • 2021-10-22
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多