R下载并自动读取许多Excel文件

我需要下载几百个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中作为单独的dataframe。

你很难回答你的问题,因为你没有提供一个可重复的例子,并不清楚你到底想要什么。 无论如何,下面的代码应该指出你在正确的方向。

  1. 你有一个你想要访问的url列表:

     urls = c("http://www/chartserver/hometolotsoffiles%a", "http://www/chartserver/hometolotsoffiles%b") 

    在你的例子中,你从csv文件加载这个

  2. 接下来,我们下载每个文件,并把它放在一个单独的目录(你在你的问题中提到过

     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") } 
  3. 然后我们遍历目录和文件,并将结果存储在一个列表中。

     ##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