繁体   English   中英

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

[英]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中。

很难回答您的问题,因为您没有提供可复制的示例,也不清楚您到底想要什么。 无论如何,下面的代码应该为您指明正确的方向。

  1. 您有要访问的网址列表:

     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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM