【问题标题】:R download and read many excel files, automaticallyR自动下载并读取许多excel文件
【发布时间】:2013-10-02 13:42:06
【问题描述】:

我每天需要下载几百个 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 作为单独的数据框。

【问题讨论】:

    标签: r excel import xlconnect


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      相关资源
      最近更新 更多