r vector uitleg wat is het voorbeeld tutorial

In dit blog gaan we in op het datatype "vector" 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, verschillende soorten datasets uitleest in R, data manipuleert met bijvoorbeeld dplyr of data.table, of data visualiseert in bijvoorbeeld een histogram of boxplot.

1. Wat is een R vector?

Een vector is een eendimensionale verzameling van meerdere elementen (waarden) van hetzelfde datatype, bewaard in één variabele.

Een vector lijkt erg op een list. Een R list kan echter meerdere datatypes binnen dezelfde lijst bevatten.

Voorbeelden van vectors:

  • Een lijst met leeftijden.
  • Een lijst met namen van steden.

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

2. Een vector aanmaken

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

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

De c is een functie en staat voor combine.

Zie onderstaand voorbeeld:

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

city_names
[1] "Amsterdam" "Utrecht"   "Rotterdam" "Den Haag"  "Eindhoven"

Met functie is() bekijken we het datatype:

is(city_names)
[1] "character"           "vector"              "data.frameRowLabels"
[4] "SuperClassMethod"
  • We zien "vector"

  • "character" geeft aan dat de elementen in de vector tekst zijn


3. Eigenschappen van een vector

We hebben gezien dat een vector meerdere elementen kan bevatten.


3.1. Eén datatype

De elementen kunnen slechts van één datatype zijn.

Zie onderstaand voorbeeld:

ages <- c("five", 10, 34, 66, "sixteen")

ages
[1] "five"    "10"      "34"      "66"      "sixteen"

Je ziet dat alle elementen nu worden gezien als character (tekst).


3.2. Eén dimensie

Een vector kan slechts uit 1 dimensie bestaan.

Wanneer je als elementen weer vectoren zou gebruiken, wordt dit alsnog een een-dimensionale vector:

ages <- c(c("five", "sixteen"), c(10, 34, 66))

ages
[1] "five"    "sixteen" "10"      "34"      "66"

4. Elementen selecteren

Ieder element heeft een index-nummer.

Zie onderstaand voorbeeld:

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

"Amsterdam""Utrecht""Rotterdam""Den Haag""Eindhoven"
index12345

Dit heet 1-based indexing, omdat 1 het eerste nummer is.


4.1. Eén element selecteren

Een element selecteer je met de volgende syntax:

<individueel_element> <- <vector_variabele>[<indexnummer>]

Zie onderstaand voorbeeld:

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

city_names[3]
[1] "Rotterdam"

4.2. Meerdere elementen selecteren

Meerdere elementen selecteer je met de volgende syntax:

<elementen> <- <vector_variabele>[<indexnummer_start>:<indexnummer_stop>]

Zie onderstaand voorbeeld:

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

city_names[3:5]
[1] "Rotterdam" "Den Haag"  "Eindhoven"

5. Vectors aanpassen

We bekijken de volgende aanpassingen:

  1. Elementen aanpassen

  2. Elementen toevoegen

  3. Elementen verwijderen


5.1. Elementen aanpassen

5.1.1. Eén element aanpassen

Je past één element als volgt aan:

  • Verwijs naar de index van de element
  • Wijs een nieuwe waarde toe
city_names <- c("Amsterdam", "Utrecht", "Rotterdam", "Den Haag", "Eindhoven")

city_names[2] <- "Tilburg"

city_names
[1] "Amsterdam" "Tilburg"   "Rotterdam" "Den Haag"  "Eindhoven"

5.1.2. Meerdere elementen aanpassen

  • Ook hier verwijs je naar de index
  • Met een vector geef je nieuwe waarden op
city_names <- c("Amsterdam", "Utrecht", "Rotterdam", "Den Haag", "Eindhoven")

city_names[2:3] <- c("Tilburg", "Groningen")

city_names
[1] "Amsterdam" "Tilburg"   "Groningen" "Den Haag"  "Eindhoven"

5.2. Elementen toevoegen

Elementen voeg je toe door een nieuwe vector c() te maken.

Zie onderstaand voorbeeld:

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

additional_city_names <- c("Tilburg", "Groningen")

all_city_names <- c(city_names, additional_city_names)

all_city_names
[1] "Amsterdam" "Utrecht"   "Rotterdam" "Den Haag"  "Eindhoven" "Tilburg"  
[7] "Groningen"

5.3. Elementen verwijderen

Door gebruik te maken van de index kunnen we elementen selecteren:

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

city_names[2]
[1] "Utrecht"

Door een minteken - voor het indexnummer te plaatsen verwijder je een element:

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

filtered_city_names <- city_names[-2]

filtered_city_names
[1] "Amsterdam" "Rotterdam" "Den Haag"  "Eindhoven"

Als je meerdere elementen wilt verwijderen benoem je de indexnummers tussen ronde haken ():

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

filtered_city_names <- city_names[-(2:3)]

filtered_city_names
[1] "Amsterdam" "Den Haag"  "Eindhoven"

6. Aantal elementen in een vector

  • R kent de functie length().
  • Daarmee verkrijg je het aantal elementen van een vector.
city_names <- c("Amsterdam", "Utrecht", "Rotterdam", "Den Haag", "Eindhoven")

length(city_names)
[1] 5

R Vector: om te onthouden

  • Een vector bevat meerdere elementen (waarden),
    • Van hetzelfde datatype
    • Eendimensionaal
  • Voorbeeld:
    • city_names <- c("Amsterdam", "Utrecht", "Rotterdam")
  • Elementen selecteren
    • 1-based indexing
    • Voorbeeld: city_names[1] of city_names[2:3]
  • Vector aanpassen
    • Elementen aanpassen: gebruik indexnummer, bijvoorbeeld: city_names[1] <- "Tilburg"
    • Elementen toevoegen: gebruik een nieuwe vector, bijvoorbeeld: all_city_names <- c(city_names, c("Tilburg"))
    • Elementen verwijderen: gebruik het minteken en indexnummer, bijvoorbeeld: city_names[-1]
  • Aantal elementen: gebruik functie length(), bijvoorbeeld: length(city_names)

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: