【发布时间】:2015-08-22 02:56:33
【问题描述】:
我在从 Internet 下载 csv 文件时遇到问题。
我尝试了以下代码,但无法使其工作。
myurl <- "http://unstats.un.org/unsd/mdg/Handlers/ExportHandler.ashx?Type=Csv&Series=761"
download.file(myurl, destfile="./test.csv",method="curl")
相反,我收到了以下输出。
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0100 16313 100 16313 0 0 11961 0 0:00:01 0:00:01 --:--:-- 11959100 16313 100 16313 0 0 11960 0 0:00:01 0:00:01 --:--:-- 11959
当我手动下载时,会生成这样的文件“MDG_Export_20150821_224828123.csv”。 服务器生成一个新的文件名(MDG_Export + date + time)。
我是否可以从我的 R 程序中下载它,因为手动下载不是我的项目中的选项?
感谢您的帮助。
【问题讨论】:
-
你试过用
read.csv(url(myurl), ....)阅读它吗?你真的要保存它还是只在 R 中使用它? -
该文件是一个
zip文件,所以你需要下载它,unzip然后读入R。文本文件底部也有一些噪音-fread来自data.table的包非常适合做出有用的假设。这似乎工作download.file(myurl, temp <- tempfile()) ; lst <- unzip(temp, list=TRUE) ; dat <- data.table::fread(unzip(temp, lst$Name), header=TRUE)。请参阅stackoverflow.com/questions/23899525/… 和其他链接 -
有
unz文件连接函数。 -
非常感谢。这对我有用。正如你提到的,底部有噪音。我必须在保存文件之前将其删除。
标签: r