r list uitleg tutorial

In dit blog gaan we in op het datatype "list" in R. Het is een verdieping op ons artikel over Datatypes in R.

Het blog is een onderdeel van een blogserie over R waarin we o.a. ingaan op hoe je R installeert, hoe je in RStudio werkt, data manipuleert met bijvoorbeeld dplyr of data.table, of data visualiseert in bijvoorbeeld een histogram of boxplot.

Inhoud

In dit blog vind je meer informatie over:


1. Wat is een list in R?

Een list is een een- of meerdimensionale verzameling   van mogelijk meerdere elementen (waarden),  van mogelijk meerdere datatypes,  bewaard in één variabele.

Het datatype list lijkt op het datatype vector. In dit blog vind je meer informatie over vectoren in R.

Hierdoor kunnen de elementen van een list bijvoorbeeld zelf ook weer een list of vector zijn.


Met vertrouwen waardevolle inzichten halen uit data met R? Bekijk dan onze opleiding R voor data analyse.

2. Een list aanmaken in R

De syntax om een list aan te maken is als volgt:

<variabele> <- list(<waarde 1>, ..., <waarde n>)

Zie onderstaand voorbeeld:

city_names <- list("Amsterdam", "Utrecht", "Rotterdam", "Den Haag", "Eindhoven")

city_names
 [[1]]
 [1] "Amsterdam"

 [[2]]
 [1] "Utrecht"

 [[3]]
 [1] "Rotterdam"

 [[4]]
 [1] "Den Haag"

 [[5]]
 [1] "Eindhoven"

En voor elementen met verschillende datatypes werkt dit hetzelfde:

example_list <- list("Amsterdam", 123, c("low", "medium"), TRUE)

example_list
 [[1]]
 [1] "Amsterdam"

 [[2]]
 [1] 123

 [[3]]
 [1] "low"    "medium"

 [[4]]
 [1] TRUE

Met functie is() bekijken we het datatype:

is(example_list)
 [1] "list"   "vector"

We zien het data type "list" inderdaad naar voren komen.


3. Selecteren en aanpassen

Het selecteren en aanpassen van lists doe je op dezelfde manier als bij vectoren.

  • Gebruik 1-based indexing en blokhaken voor selecties en toewijzingen
  • Gebruik het minteken voor het verwijderen van een selectie

Ter verduidelijking zullen we enkele voorbeelden laten zien.

3.1. Selecteren

We starten met het selecteren van enkele elementen.

example_list <- list("Amsterdam", 123, c("low", "medium"), TRUE)

example_list[2:3]
 [[1]]
 [1] 123

 [[2]]
 [1] "low"    "medium"

Op deze manier hebben we het tweede en derde element uit de lijst geselecteerd.

3.2. Aanpassen

We gaan het tweede element uit de lijst wijzigen naar een ander getal.

example_list <- list("Amsterdam", 123, c("low", "medium"), TRUE)

example_list[2] <- 999

example_list
 [[1]]
 [1] "Amsterdam"

 [[2]]
 [1] 999

 [[3]]
 [1] "low"    "medium"

 [[4]]
 [1] TRUE

We zien dat het gelukt is het getal te wijzigen.

3.3. Verwijderen

We zullen nu een element verwijderen uit de R list.

example_list <- list("Amsterdam", 123, c("low", "medium"), TRUE)

example_list <- example_list[-2]

example_list
 [[1]]
 [1] "Amsterdam"

 [[2]]
 [1] "low"    "medium"

 [[3]]
 [1] TRUE

We zien dat het verwijderen inderdaad is gelukt.


4. Named list

Je kunt ook een zogenaamde named list maken in R.

Daarbij geef je de elementen in de list een naam.

Zie onderstaand voorbeeld:

inhabitants <- list(
  amsterdam = 805166,
  rotterdam = 614543,
  den_haag = 507611)

inhabitants
 $amsterdam
 [1] 805166

 $rotterdam
 [1] 614543

 $den_haag
 [1] 507611

Let op: je definieert de naam - waarde paren met het = teken.


4.1. Waarden selecteren

Je verkrijgt de waarde van een element door met een $ teken naar de naam te verwijzen.

inhabitants <- list(
  amsterdam = 805166,
  rotterdam = 614543,
  den_haag = 507611)

inhabitants$rotterdam
 [1] 614543

We krijgen hier de waarde voor rotterdam terug zoals verwacht.


4.2. Elementen selecteren uit een named list

Je verkrijgt een element door met blokhaken [] en de naam tussen dubbele apostrofs "".

inhabitants <- list(
  amsterdam = 805166,
  rotterdam = 614543,
  den_haag = 507611)

inhabitants["rotterdam"]
 $rotterdam
 [1] 614543

Let op: je verkrijgt hier het element met de naam.

Wil je alleen de waarde, gebruik dan een dubbele set blokhaken:

inhabitants <- list(
  amsterdam = 805166,
  rotterdam = 614543,
  den_haag = 507611)

inhabitants[["rotterdam"]]
 [1] 614543

De R List: om te onthouden

  • Een list kan meerdere elementen (waarden) bevatten met meerdere datatypes. Een R list kan bovendien meerdimensionaal zijn.
  • Voorbeeld: example_list <- list("Amsterdam", 123, c("low", "medium"), TRUE)
  • Selecteren en aanpassen werkt volgens 1-based indexing. Bijvoorbeeld:
    • example_list[1] <- "Rotterdam"
    • example_list <- example_list[-1]
  • Named list: geef elementen uit een lijst een naam, zoals example_named_list <- list(amsterdam = 805166, rotterdam = 614543)
    • Een element selecteren doe je in dat geval met blokhaken en dubbele apostrofs. Bijvoorbeeld: example_named_list["rotterdam"] voor de waarde met naam. Of example_named_list[["rotterdam"]] voor alleen de waarde van het element
    • Een waarde selecteren doe je als volgt met een dollartaken: example_named_list$rotterdam

Wil jij goed leren werken in R? Tijdens onze Opleiding R leer je alles wat je nodig hebt om zelfstandig analyses uit te voeren in R.

by: