Een online dataset in R importeren
Naast ingebouwde datasets en datasets die opgeslagen staan op jouw eigen machine, kun je ook data direct vanaf een locatie op het web importeren in R. Door de URL aan te geven die de locatie van de data bevat, kun je zonder dat je de data eerst op jouw machine opslaat direct naar de R-sessie halen.
Hiervoor kun je eenvoudig gebruik maken van dezelfde Import Dataset knop. Echter kies je deze keer voor From Web URL...
.
De URL die de dataset bevat opzoeken en invoeren
In dit geval willen we een dataset van de open data website van de Nederlandse overheid ( https://data.overheid.nl ) importeren. Hiervoor gaan we naar de website en selecteren we een dataset. We kiezen voor een dataset over lichtmasten. We willen de data in csv-formaat importeren. Daarom kiezen we voor de link: http://schagen.gemeentedocumenten.nl/OpenData/OpenbareVerlichting/Lichtmasten.csv
.
In dit boek kun je bij Case 2 zien hoe je een JSON-bestand importeert en omzet in een data frame in R.
De dataset achter de URL specificeren
Net als bij het importeren van een lokale dataset, kun je in R studio ook een dataset specificeren die door middel van een URL wordt geïmporteerd. Dit gaat exact op dezelfde manier.
Direct vanuit de URL downloaden of door middel van de tussenstap in RStudio
Voor het importeren van de dataset wordt de volgende code gegenereerd. Zoals je kunt zien, staat niet de URL in deze code aangegeven, maar een lokaal pad op onze eigen machine. De reden hiervoor is dat R een tijdelijk bestand (Rtmp
) aanmaakt van het bestand, deze opslaat en vanaf deze locatie het bestand importeert naar de R-sessie. Dit is prima en geeft geen problemen.
Lichtmasten <-
read.csv("/var/folders/f9/zhcclk8j25qfft2yw116z_l00000gn/T//Rtmp4YZN8X/data3245f921aa5")
Mocht je echter per se de data direct vanaf de externe locatie naar de R-sessie importeren, kun je gebruik maken van de read.csv()
functie in combinatie van de url()
functie. Dit gaat op de volgende manier.
Lichtmasten2 <-
read.csv(
url("http://schagen.gemeentedocumenten.nl/OpenData/OpenbareVerlichting/Lichtmasten.csv")
)
Simpelweg geven we in dit command aan dat we de normale read.csv()
functie willen gebruiken, echter is de locatie van de data extern. Omdat het in dit geval gaat op een URL, moeten we de url()
functie gebruiken zodat R deze kan uitlezen.
Het nadeel van direct importeren op deze manier is dat je niet door middel van het venster Import Dataset eenvoudig kan specificeren hoe de data geïmporteerd moet worden. Dit zou je dan zelf in de code moeten aangeven als extra argumenten. Dit is makkelijker dan het lijkt, je kunt namelijk gewoon eerst via de R Studio manier de data importeren via het venster op de manier die je wilt. De gegenereerde code en extra argumenten kopieer en plak je dan in de
read.csv(url())
methodiek.
Het resultaat wordt net als bij het importeren van een lokale dataset met de View()
functie aangegeven.