R - Dữ liệu web
Nhiều trang web cung cấp dữ liệu cho người dùng của nó. Ví dụ: Tổ chức Y tế Thế giới (WHO) cung cấp báo cáo về sức khỏe và thông tin y tế dưới dạng tệp CSV, txt và XML. Sử dụng các chương trình R, chúng tôi có thể trích xuất dữ liệu cụ thể từ các trang web như vậy theo chương trình. Một số gói trong R được sử dụng để thu thập dữ liệu trên web là - "RCurl", XML "và" stringr ". Chúng được sử dụng để kết nối với URL, xác định các liên kết bắt buộc cho tệp và tải chúng xuống môi trường cục bộ.
Cài đặt gói R
Các gói sau là bắt buộc để xử lý URL và liên kết đến tệp. Nếu chúng không có sẵn trong Môi trường R của bạn, bạn có thể cài đặt chúng bằng các lệnh sau.
install.packages("RCurl")
install.packages("XML")
install.packages("stringr")
install.packages("plyr")
Dữ liệu đầu vào
Chúng tôi sẽ truy cập dữ liệu thời tiết URL và tải xuống các tệp CSV sử dụng R cho năm 2015.
Thí dụ
Chúng tôi sẽ sử dụng hàm getHTMLLinks()để thu thập URL của các tệp. Sau đó, chúng ta sẽ sử dụng hàmdownload.file()để lưu các tệp vào hệ thống cục bộ. Vì chúng ta sẽ áp dụng lặp lại cùng một mã cho nhiều tệp, chúng ta sẽ tạo một hàm để được gọi nhiều lần. Tên tệp được chuyển dưới dạng tham số dưới dạng đối tượng danh sách R cho hàm này.
# 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/")
Xác minh việc tải xuống tệp
Sau khi chạy đoạn mã trên, bạn có thể định vị các tệp sau trong thư mục làm việc R hiện tại.
"JCMB_2015.csv" "JCMB_2015_Apr.csv" "JCMB_2015_Feb.csv" "JCMB_2015_Jan.csv"
"JCMB_2015_Mar.csv"