R - Webdaten

Viele Websites stellen Daten zum Verbrauch durch ihre Benutzer bereit. Beispielsweise liefert die Weltgesundheitsorganisation (WHO) Berichte über gesundheitliche und medizinische Informationen in Form von CSV-, txt- und XML-Dateien. Mit R-Programmen können wir programmgesteuert bestimmte Daten von solchen Websites extrahieren. Einige Pakete in R, die zum Verschrotten von Daten aus dem Web verwendet werden, sind "RCurl", XML "und" stringr ". Sie werden verwendet, um eine Verbindung zu den URLs herzustellen, die erforderlichen Links für die Dateien zu identifizieren und sie in die lokale Umgebung herunterzuladen.

Installieren Sie R-Pakete

Die folgenden Pakete sind für die Verarbeitung der URLs und Links zu den Dateien erforderlich. Wenn sie in Ihrer R-Umgebung nicht verfügbar sind, können Sie sie mit den folgenden Befehlen installieren.

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

Eingabedaten

Wir werden die URL- Wetterdaten besuchen und die CSV-Dateien mit R für das Jahr 2015 herunterladen.

Beispiel

Wir werden die Funktion verwenden getHTMLLinks()um die URLs der Dateien zu sammeln. Dann werden wir die Funktion verwendendownload.file()um die Dateien auf dem lokalen System zu speichern. Da wir denselben Code immer wieder für mehrere Dateien anwenden, erstellen wir eine Funktion, die mehrmals aufgerufen werden kann. Die Dateinamen werden als Parameter in Form eines R-Listenobjekts an diese Funktion übergeben.

# 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/")

Überprüfen Sie den Dateidownload

Nachdem Sie den obigen Code ausgeführt haben, können Sie die folgenden Dateien im aktuellen R-Arbeitsverzeichnis suchen.

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