Lijsten (lists) maken in R

Net als bij een data frame, kan een matrix rij- en kolomnamen bevatten. Dit is heel handig als je bijvoorbeeld later data wilt opzoeken uit specifieke rijen en kolommen. Om dit te demonstreren, maken we een matrix waarin we voor een aantal personen een aantal eigenschappen bijhouden. Hierbij zetten we de namen van de personen op de rijen en de eigenschappen op de kolomnamen.

# lijsten aanmaken van persoonsgegevens

Harry <- list(
          voornaam = "Harry", achternaam = "de Hengst", lengte = 1.87, 
          gewicht = 81.3, woonplaats = "Leiden", rookt = FALSE, studie = "Bedrijfskunde",
          geslacht = "M", leeftijd = 21
          )

Key-value pair in lists

Lijsten (lists) zijn hele handige objecten in R. Lists bestaan namelijk uit vectoren die een naam hebben, in dit geval bijvoorbeeld leeftijd, voornaam, rookt enzovoort. Deze namen worden keys genoemd, de waarden achter deze namen worden values genoemd. Hierdoor spreek je over key - value pairs, of in Nederlands: de naam van de vector en de waarde in deze vector. Door deze opbouw, kun je net zoals bij een dataframe met de $ operator de waarde achter een key oproepen.

Verschillende datatypes opslaan in lists

Een sterk punt van de list structuur is dat je waarden van verschillende datatypen er in kunt opslaan. Dit kan niet met een vector. Als je namelijk een vector maakt die allemaal numerieke waarden heeft en slechts een enkele character waarde, wordt de vector gelijk omgezet naar een character vector. Hierdoor worden alle numerieke waarden in de vector gelijk onbruikbaar. Dit probleem heb je met een list echter niet. Iedere waarde in een list heeft zijn eigenschappen.

waardenVector <- c(1, 2, 3, 4, "Woord")

waardenVector
## [1] "1"     "2"     "3"     "4"     "Woord"
class(waardenVector)
## [1] "character"
waardenLijst <- list(1, 2, 3, 4, "Woord")

waardenLijst
## [[1]]
## [1] 1
## 
## [[2]]
## [1] 2
## 
## [[3]]
## [1] 3
## 
## [[4]]
## [1] 4
## 
## [[5]]
## [1] "Woord"
class(waardenLijst)
## [1] "list"

Je kunt aan de aanhalingstekens bij de nummers in de waardenVector zien dat de nummers omgezet zijn naar het character datatype. Dit is bij de waardenLijst echter niet zo.

class(Harry)
## [1] "list"
# de leeftijd van Harry terugvinden

Harry$leeftijd
## [1] 21
# de gehele 'Harry' lijst weergeven

Harry
## $voornaam
## [1] "Harry"
## 
## $achternaam
## [1] "de Hengst"
## 
## $lengte
## [1] 1.87
## 
## $gewicht
## [1] 81.3
## 
## $woonplaats
## [1] "Leiden"
## 
## $rookt
## [1] FALSE
## 
## $studie
## [1] "Bedrijfskunde"
## 
## $geslacht
## [1] "M"
## 
## $leeftijd
## [1] 21

Key-value pairs kom je in de Business Intelligence en Analytics wereld steeds meer tegen. Dit is een van de meeste gebruikte datastructuren die onder NoSQL categorie vallen. De JSON-datastructuur werkt ook met key-value pairs , daarom wordt JSON-data in R geïnterpreteerd als een list datatype.

Het is niet verplicht om de namen in een lijst een naam te geven. Het nadeel hiervan is echter dat je deze dan ook niet kunt oproepen zoals in het vorige voorbeeld.

Japie <- list("Japie","Krekel", 1.47, 65.3, "Utrecht", TRUE,"Rechten","M",23)
Roos <- list("Roos","Jansen", 1.67, 60, "Utrecht", FALSE,"Geneeskunde","V",25)
Hans <- list("Hans","Klock", 1.78, 78.2, "Utrecht", FALSE,"Bedrijfskunde","M",20)
Marco <- list("Marco","Polo", 1.89, 81.3, "Leiden", FALSE,"Rechten","M",19)
Erica <- list("Erica","Jansen", 1.53, 65.3, "Leiden", TRUE,"Geneeskunde","V",27)

results matching ""

    No results matching ""