[英]R download and read many excel files, automatically
我需要每天下载几百个excel文件并将其导入R。 每个人都应该是自己的数据框。 我有一个csv。 包含所有地址的文件(地址保持静态)。
CSV。 文件看起来像这样:
http://www.www.somehomepage.com/chartserver/hometolotsoffiles%a
http://www.www.somehomepage.com/chartserver/hometolotsoffiles%b
http://www.www.somehomepage.com/chartserver/hometolotsoffiles%a0
http://www.www.somehomepage.com/chartserver/hometolotsoffiles%aa11
etc.....
我可以用一个文件来做到这一点:
library(XLConnect)
my.url <- "http://www.somehomepage.com/chartserver/hometolotsoffiles%a"
loc.download <- "C:/R/lotsofdata/" # each files probably needs to have their own name here?
download.file(my.url, loc.download, mode="wb")
df.import.x1 = readWorksheetFromFile("loc.download", sheet=2))
# This kind of import works on all the files, if you ran them individually
但是我不知道如何下载每个文件,并将其分别放在一个文件夹中,然后将它们作为单独的数据帧导入到R中。
很难回答您的问题,因为您没有提供可复制的示例,也不清楚您到底想要什么。 无论如何,下面的代码应该为您指明正确的方向。
您有要访问的网址列表:
urls = c("http://www/chartserver/hometolotsoffiles%a", "http://www/chartserver/hometolotsoffiles%b")
在您的示例中,您是从csv文件加载的
接下来,我们下载每个文件并将其放在单独的目录中(您在问题中提到了
for(url in urls) { split_url = strsplit(url, "/")[[1]] ##Extract final part of URL dir = split_url[length(split_url)] ##Create a directory dir.create(dir) ##Download the file download.file(url, dir, mode="wb") }
然后,我们遍历目录和文件,并将结果存储在列表中。
##Read in files l = list(); i = 1 dirs = list.dirs("/data/", recursive=FALSE) for(dir in dirs){ file = list.files(dir, full.names=TRUE) ##Do something? ##Perhaps store sheets as a list l[[i]] = readWorksheetFromFile(file, sheet=2) i = i + 1 }
我们当然可以将第二步和第三步组合成一个循环。 或放弃循环并使用sapply
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.