R語言Web資料


許多網站為使用者提供一些公開的資料。 例如,世界衛生組織(WHO)以CSV,txt和XML檔案的形式提供關於健康和醫療資訊的報告。 使用R程式,我們可以從這些網站以程式設計方式提取特定的資料。 用於從網路中廢棄資料的R中的一些包是 - RCurlXMLstringr,用於連線URL,識別檔案所需的連結並將其下載到本地環境。

安裝R包

需要以下包才能處理URL和連結到檔案。 如果它們在R環境中不可用,則可以使用以下命令安裝它們。

install.packages("RCurl")
install.packages("XML")
install.packages("stringr")
install.packages("plyr")

準備輸入資料

我們將存取URL天氣資料,並使用R來下載2015年天氣的CSV檔案。

例子

我們將使用函式getHTMLLinks()來收集檔案的URL。然後將使用函式download.file()將檔案儲存到本地系統。由於我們將為多個檔案一次又一次地應用相同的程式碼,所以將建立一個被多次呼叫的函式。檔案名作為引數以R列表物件的形式傳遞給此函式。

# Read the URL.
url <- "http://www.geos.ed.ac.uk/~weather/jcmb_ws/"

# Gather the html links present in the webpage.
links <- getHTMLLinks(url)

# Identify only the links which point to the JCMB 2015 files. 
filenames <- links[str_detect(links, "JCMB_2015")]

# Store the file names as a list.
filenames_list <- as.list(filenames)

# Create a function to download the files by passing the URL and filename list.
downloadcsv <- function (mainurl,filename) {
   filedetails <- str_c(mainurl,filename)
   download.file(filedetails,filename)
}

# Now apply the l_ply function and save the files into the current R working directory.
l_ply(filenames,downloadcsv,mainurl = "http://www.geos.ed.ac.uk/~weather/jcmb_ws/")

驗證檔案下載

執行上述程式碼後,可以在當前R工作目錄中找到以下檔案。

"JCMB_2015.csv" "JCMB_2015_Apr.csv" "JCMB_2015_Feb.csv" "JCMB_2015_Jan.csv"
   "JCMB_2015_Mar.csv"