数据表';s fread()提供不需要的下载消息

数据表';s fread()提供不需要的下载消息,r,data.table,R,Data.table,我对数据不太熟悉。table的fread函数,但它可以快速读取我的数据,所以现在我很感兴趣。在URL”处http://www.retrosheet.org/CurrentNames.csv“,有一个简单的csv文件。以下两个调用可以正常工作 readLines("http://www.retrosheet.org/CurrentNames.csv", n = 2) # [1] "ANA,LAA,AL,,Los Angeles,Angels,,4/11/1961,9/1/1965,Los Ange

我对数据不太熟悉。table的
fread
函数,但它可以快速读取我的数据,所以现在我很感兴趣。在URL
”处http://www.retrosheet.org/CurrentNames.csv“
,有一个简单的csv文件。以下两个调用可以正常工作

readLines("http://www.retrosheet.org/CurrentNames.csv", n = 2)
# [1] "ANA,LAA,AL,,Los Angeles,Angels,,4/11/1961,9/1/1965,Los Angeles,CA"
# [2] "ANA,CAL,AL,,California,Angels,,9/2/1965,9/29/1968,Anaheim,CA"
rcsv <- read.csv("http://www.retrosheet.org/CurrentNames.csv", header = FALSE)
我可以使用
suppressMessages()
,但我真的不想

library(data.table)
dtf <- fread("http://www.retrosheet.org/CurrentNames.csv", 
             header = FALSE, showProgress = FALSE)
# trying URL 'http://www.retrosheet.org/CurrentNames.csv'
# Content type 'text/plain' length 7729 bytes
# opened URL
# ==================================================
# downloaded 7729 bytes
库(data.table)

dtf于2014年10月更新。现在在v1.9.5中:

fread
现在将
showProgress=FALSE
传递到
download.file()
作为
quiet=!显示进度
。感谢卡尔·布罗曼和理查德·斯克里文提出的提交该问题的请求


先前的答案

它确实下载了这个文件,下面是代码的一部分

else if (substring(input, 1, 7) %chin% c("http://", "https:/", 
    "file://")) {
    tt = tempfile()
    on.exit(unlink(tt), add = TRUE)
    download.file(input, tt)
    input = tt
}

我猜这是因为fread对文件进行了不止一次的传递,首先获取结构,然后实际读取整个文件。保存多次下载。

我们需要的是一个
quiet=TRUE
传递给
download.file
好吧,你可以试试,我想我可以编辑它,把它叫做其他东西。我将在一些包函数中使用它,所以我可能需要保持它的原样。@RichardScriven你说它伪装成URL是什么意思。它是一个位于远程服务器上的文件。
readLines
read.csv
也在下载该文件。他们只是将其作为一个流进行处理(你必须能够在内存中读取整个内容。):)你如何想象你可以“直接从URL读取”而不下载?但这是一个很好的方法,可以将
quiet=TRUE
添加到
download.file
中,如果
showProgress
FALSE
,您应该将其添加到github中。@eddi-这有点讽刺,我们昨天进行了对话。:)但我也认为
quiet=TRUE
选项将是对
fread
的一个很好的补充。老实说,我并不精通内存、存储、远程服务器等。我只是喜欢棒球和R,所以我在写一种“边学边用”的软件包。submitted@MattDowle-非常感谢!!
else if (substring(input, 1, 7) %chin% c("http://", "https:/", 
    "file://")) {
    tt = tempfile()
    on.exit(unlink(tt), add = TRUE)
    download.file(input, tt)
    input = tt
}