簡體   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