De programmeertaal R
R wordt over het algemeen een open source statistische programmeertaal genoemd. Deze beschrijving is een hele mond vol, maar bevat wel de belangrijkste aspecten van deze programmeertaal:
Open source;
Statistisch;
Programmeertaal.
Open source
R is een open source programmeertaal, dat betekent dat niemand, geen organisatie en geen persoon, de eigenaar is van R en je het dus overal gratis voor kunt gebruiken. Daarbij geeft open source aan dat de broncode waarmee de programmeertaal is opgebouwd beschikbaar is. Je kunt bijvoorbeeld bekijken met welke broncode de functies van R zijn opgebouwd. Een ander belangrijk aspect van open source in dit geval is dat je alle vrijheid hebt om onderdelen aan te passen en er extra mogelijkheden aan kunt toevoegen. De mogelijkheden hier in zijn eindeloos, in die zin dat mogelijkheden niet bewust zijn afgesloten omdat R niet is dichtgetimmerd.
Een belangrijk voorbeeld hiervan zijn de verschillende packages die beschikbaar zijn in R. Packages zijn verzamelingen van extra functies die geschreven zijn door andere ontwikkelaars en over het algemeen vrij beschikbaar worden gesteld. Deze packages maken de programmeertaal zeer krachtig, flexibel en toepasbaar voor verschillende werkzaamheden, sectoren en branches. Zo zijn er bijvoorbeeld packages die het makkelijk maken om Twitter data te importeren (het twitteR package), packages die formules van financiële calculaties bevatten (het FinCal package), packages waarmee je analytics kunt uitvoeren door Google Analytics data te importeren in R (het officiële RGoogleAnalytics package van Google) en packages om op een prachtige manier data te visualiseren (bijvoorbeeld het ggplot2 package). Dit maakt R een Zwitsers zakmes als het gaat om werken met data en is dit voor een groot deel te danken is aan het feit dat het een open source programmeertaal is.
Packages zijn goed gedocumenteerd en worden beheerd in de Comprehensive R Archive Network (CRAN). Dit is ook de plek waar over het algemeen de belangrijkste packages staan en worden beheerd door de community van R. Deze packages hebben aan een aantal belangrijke criteria voldaan. De documentaties zijn over het algemeen te vinden in een overzichtelijk pdf-bestand. In deze documentatie kun je alle functies van het package bekijken, contactgegevens vinden van de ontwikkelaar en met voorbeelden zien hoe functies van het package worden toegepast. Naast CRAN, zijn er ook steeds meer packages te vinden op Github. Deze werken gewoon op dezelfde manier als packages die op CRAN staan, de installatie is alleen iets anders. In dit boek wordt er ook verschillende keren gebruik gemaakt van packages. Je zult zien dat packages zeer eenvoudig te installeren en te gebruiken zijn.
Statistisch
R wordt een statistische programmeertaal genoemd omdat het standaard een uitgebreide collectie van statistische functies bevat. Dit betekent absoluut niet dat R beperkt wordt tot het vakgebied statistiek of dat het minder handig is voor andere vakgebieden. De reden dat R deze statistische functies bevat is omdat het oorspronkelijk ontwikkeld is om (statistisch) onderzoek mee uit te voeren. Je kunt het hierbij vergelijken met softwarepakketten als SPSS en MatLab. Je zou op dezelfde manier kwantitatief onderzoek kunnen doen of je scriptie kunnen schrijven in R. Statistische toetsen, visualisaties of formules zijn zeer eenvoudig met functies toe te passen in R zonder dat je daar een speciaal package voor hoeft te installeren. Deze functies maken het data analyseren veel makkelijker. Naast de ingebakken statistische functies bevat R namelijk een breed scala aan functies om databewerkingen of analyses te doen. Bij meer uitgebreide analyses kunnen bepaalde statistische handelingen van toepassing komen. In andere programmeertalen zal je dan de formules van deze statische handelingen handmatig moeten programmeren, dit hoeft in R echter niet om dat zo goed als elke statische functie in R zit. Dit zorgt ervoor dat je een extreem krachtige tool hebt om data te analyseren, zelfs als het een stuk ingewikkelder wordt. Daarom kun je het statische aspect van R eerder zien als een waardevolle toevoeging dan een beperking.
Programmeertaal
Het feit dat R een programmeertaal is, zorgt voor veel flexibiliteit. Het werk dat je gedaan hebt in R is in de meeste gevallen een reeks aan commando's die samengevoegd worden tot een script. In een script worden de commando's van boven naar beneden uitgevoerd, net zoals bij andere script-gebaseerde programmeertalen (scripting languages). Een script in R wordt een R-script genoemd en heeft de .r
extensie (bijvoorbeeld: analyse.r
). Dit script kun je overal mee naartoe nemen en in verschillende systemen toepassen. Zo kun je bijvoorbeeld R-code toepassen om data uit een database aan te passen, verschillende databases zijn namelijk in staat om R-code uit te voeren (bijvoorbeeld Oracle en Microsoft SQL Server (vanaf 2016). Ook op Big Data platformen en software zoals Hadoop en Spark kun je R code schrijven om data te bewerken.
Het werk dat je maakt in R is dus op veel verschillende plekken toepasbaar en kun je eenvoudig meenemen en delen. Als je nu bijvoorbeeld Excel neemt, iets dat in Excel gemaakt is blijft in Excel. De logica en code die je in Excel gebouwd hebt kun je niet overhevelen naar een ander systeem (hooguit kun je de data delen), deze zitten namelijk in het Excel-bestand gebakken. Functies en handelingen die bouwt in R, kunnen op veel meer plekken gebruikt worden. Dit geldt trouwens voor de meeste programmeertalen, de code is los te trekken van de omgeving waar het in is gebouwd: "Code once, use everywhere.".
Programmeren klinkt voor sommigen misschien heel eng en code kan er soms heel ingewikkeld uitzien. Je moet je echter hierdoor niet laten afschrikken. Het is natuurlijk nodig dat je de syntax van R begrijpt en weet wanneer je welke code moet toepassen. Hier zit een leercurve in die bij R soms als vrij stijl wordt ervaren. Echter kun je deze overwinnen met genoeg oefening waardoor je een beter begrip krijgt van de syntax en de structuur waardoor je voor jezelf een eigen manier zal vinden om R goed onder de knie te krijgen. Als je hebt gewerkt met formules in Excel, kun je sommige onderdelen van die kennis meenemen om R leren te begrijpen. Het is daarbij ook een verschil in mindset: R is geen software waarmee je op knopjes drukt en kan klikken en slepen, maar een programmeertaal waarmee aan de hand van commando's een reeks aan handelingen geeft als opdracht om door R uit te laten voeren.
R is flexibel door de vele mogelijkheden, de vele verschillende datatypes en de vele datastructuren. Maar deze flexibiliteit kan complex en ingewikkeld overkomen als je er zomaar in duikt en begint met programmeren zonder enig begrip van de structuur van R. Daarom worden er in dit boek stapje voor stapje de belangrijkste structuren en datatypes in R uitgebreid behandeld.