为什么fread在Linux上读取URL但在Windows上不行(在1.9.3之前)?

时间:2014-01-16 21:29:56

标签: r data.table

我正在尝试从网上读取csv。我跑的时候

library(data.table)
rawfile<-fread("http://www.pjm.com/pub/account/genoutages/20140116_genout.csv",stringsAsFactors=FALSE,skip=2)
rawfile

我得到了

Empty data.table (0 rows) of 2 cols: File Posted on 16-Jan-2014 04:00,V2

但如果我先将文件下载到我的电脑然后再进行

rawfile<-fread("c:\\temp\\20140116_genout.csv",stringsAsFactors=FALSE,skip=2)
rawfile

然后我得到了我期望的输出。

我知道这很容易解决,我只想知道这是一个错误,还是有一些细微差别在我头上。

1 个答案:

答案 0 :(得分:3)

更新 2014年9月:现已修复于v1.9.3

  

网址现在适用于Windows。 R download.file()在Windows上将\r\n转换为\r\r\n。现在通过以二进制模式下载来避免。感谢Steve Miller和Dean MacGregor的报道,#492


感谢报道。刚刚在Linux上尝试时,它对我来说很好。见下面的输出。

?fread确认支持URL:“为方便起见,文件名输入通过path.expand传递,可能是以http://或file://开头的URL。”

鉴于评论,似乎只是一个Windows问题。在这里提出了一个错误:
#5288 fread reads URLs on Linux but not Windows?

以下是Linux上的输出:

  

的fread( “http://www.pjm.com/pub/account/genoutages/20140116_genout.csv”,stringsAsFactors = FALSE,则跳过= 2)       尝试网址“http://www.pjm.com/pub/account/genoutages/20140116_genout.csv”       内容类型'application / octet-stream'长度为2767字节       打开网址       ==================================================       下载了2767字节

         Date Forecasted Generation Outage Western Region Other Regions
 1: 1/17/2014                         1543            374          1169
 2: 1/18/2014                         1520            374          1146
 3: 1/19/2014                         1520            374          1146
 4: 1/20/2014                         1520            374          1146
 5: 1/21/2014                         1520            374          1146
 6: 1/22/2014                         1520            374          1146
 7: 1/23/2014                         1506            374          1132
 .. snip