Variabelen aanmaken in R
R werkt over het algemeen volgens dezelfde principes als andere programmeertalen. Programmeren in R is vooral (1) variabelen aanmaken en definiëren en (2) functies toepassen op deze variabelen. Als we bijvoorbeeld een variabele willen aanmaken die de naam "Peter"
bevat, doen we dat als volgt:
# Aanmaken van variabelen doe je met <- of met =
naam = "Peter"
# of
naam <- "Peter"
Je kunt
=
of<-
gebruiken om waarden toe te wijzen in R. Deze functies doen exact hetzelfde, kies daarom wat jouw voorkeur heeft. Over het algemeen wordt er vaak voor<-
gekozen in R. Veel mensen hebben de vraag waarom deze twee varianten bestaan als ze toch hetzelfde doen. Een artikel op Revolution Analytics heeft hier een mooie en korte uiteenzetting voor [1] Use = or <- for assignment?, (Revolution Analytics, 2008)
Als we een variabele leeftijd
willen aanmaken en daar het getal 34
aan willen toewijzen, gaat dit op dezelfde manier. Nadat de variabele is aangemaakt, kunnen we de waarde die eraan is toegewezen terugvinden door simpelweg de variabele leeftijd
weer in te voeren. Het is namelijk één van de principes van programmeertalen om een toegewezen waarde te onthouden. Zo weet R
in deze sessie dat aan de variabele leeftijd de numerieke waarden 34
is toegewezen.
leeftijd <- 34
#Geeft:
leeftijd
## [1] 34
Hetzelfde geldt voor het toewijzen van een waarde met een ander datatype, bijvoorbeeld een woord. We maken de variabele woonplaats
aan die de waarde "Almere"
bevat.
#of
woonplaats <- "Almere"
#Geeft:
woonplaats
## [1] "Almere"
Alle waarden in R zijn vectoren Een vector is een object dat informatie, en in het geval van R, gegevens bevat. De output de vorige voorbeelden geven getallen vóór de waarden aan ([1]). Dit geeft aan dat het de eerste waarde is uit de vector. Zo staat
"Sassenheim"
op plaats 1 in de vectorwoonplaats
. Je kunt dus stellen dat alle waarden in R-vectoren zijn, zelfs als er slechts een waarde is toegewezen.
Vectoren met meerdere waarden in R
Een vector kan ook meerdere waarden bevatten. Om meerdere waarden toe te wijzen aan een vector, gebruik je de c()
functie. Dit kun je makkelijk onthouden door bijvoorbeeld aan de concatenate functie te denken van Excel.
We kunnen bijvoorbeeld een vector maken die drie waarden bevat:
# een vector 'woonplaatsen' aanmaken die 3 waarden bevat
woonplaatsen <- c("Almere", "Katwijk", "Utrecht")
# de waarden van de 'woonplaatsen' vector bekijken
woonplaatsen
## [1] "Almere" "Katwijk" "Utrecht"
Zoals je ziet, heeft de vector woonplaatsen
3 waarden opgeslagen. Raak niet in verwarring door de [1]
die wordt aangegeven. Dit betekent niet dat de eerste waarde uit de woonplaatsen
vector "Almere", "Katwijk", "Utrecht"
is, maar dat de eerste waarde op plaats 1
staat. Per 10 waarden in een vector wordt namelijk een nummering (indexing) aangegeven. Dit kun je zien als we bijvoorbeeld 12 waarden toewijzen aan een vector.
woonplaatsen <- c("Sassenheim", "Katwijk", "Enschede", "Groningen",
"Maastricht", "Rotterdam", "Amsterdam", "Leeuwarden", "Assen",
"Almere", "Utrecht", "Den Haag")
woonplaatsen
## [1] "Sassenheim" "Katwijk" "Enschede" "Groningen" "Maastricht"
## [6] "Rotterdam" "Amsterdam" "Leeuwarden" "Assen" "Almere"
## [11] "Utrecht" "Den Haag"
Op deze manier kun je bijvoorbeeld makkelijk aflezen dat "Den Haag"
op plaats 12 staat in de woonplaatsen
vector. Deze indexering kun je ook handig als je de waarde die op een bepaalde plek staat in een vector wilt ophalen. Als we bijvoorbeeld de waarde van de woonplaats
willen weten die op plaats 7
staat, doen we dat als volgt:
# de waarde ophalen die op plaats 7 staat van de 'woonplaats' vector
woonplaatsen[7]
## [1] "Amsterdam"
# de woonplaatsen ophalen die op de plaatsen 3 en 8 staan in de 'woonplaats' vector
woonplaatsen[3:8]
## [1] "Enschede" "Groningen" "Maastricht" "Rotterdam" "Amsterdam"
## [6] "Leeuwarden"
Let op dat de indexering van de selectie die je gemaakt hebt nu weer anders is. In dit geval staat "Amsterdam"
namelijk op plaats 5.
De index van R is 1. Dit betekent dat reeksen van vectoren of andere onderdelen in R bij 1 beginnen. Dit klinkt logisch, maar het is bij programmeren meer gebruikelijk dat reeksen bij 0 beginnen. Dit worden talen genoemd met een zero based indexing. Bij onze
woonplaasten
vector in het voorbeeld zou in de programmeertaal Python het eerste element"Sassenheim"
op plaats0
staan, terwijl het bij R gewoon op plaats1
staat.
Vectoren samenvoegen
Je kunt ook waarden uit andere vectoren samenvoegen. Hiervoor voer je in plaats van de absolute waarden, de namen van de vectoren in. Dit wordt in het volgende voorbeeld gedemonstreerd.
# de waarde "Nina" toewijzen aan de 'naam' vector
naam <- "Nina"
# de waarde 23 toewijzen aan de 'leeftijd' vector
leeftijd <- 23
# de waarde "Amsterdam" toewijzen aan de 'woonplaats' vector
woonplaats <- "Amsterdam"
# een FALSE waarde toewijzen aan de 'rookt' vector
rookt <- FALSE
# de waarden van alle vectoren bekijken
naam
## [1] "Nina"
leeftijd
## [1] 23
woonplaats
## [1] "Amsterdam"
# de vector 'persoon' aanmaken en de waarden van de andere vectoren hier aan toewijzen
persoon <- c(naam, leeftijd, woonplaats, rookt)
persoon
## [1] "Nina" "23" "Amsterdam" "FALSE"
Op deze manier wijs je 4 waarden toe aan de persoon
vector.