Benoemde vectoren en reeksen
Wijs namen aan vectoren toe en open ze voor leesbare code.
Benoemde vectoren en reeksen is een gratis R Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject R Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus R Academy bevat in totaal 4 lessen.
Inleiding tot benoemde vectoren
Een benoemde vector is een vector waarvan elk element een bijbehorende naam (een tekstlabel) heeft. Namen maken code leesbaarder en stellen je in staat elementen op naam te benaderen in plaats van via hun positie-index.
# A plain vector vs a named vector
plain <- c(78, 92, 85, 67)
named <- c(Alice = 78, Bob = 92, Carol = 85, Dave = 67)
cat('Plain vector:', plain, '
')
cat('Named vector:
')
print(named)Benoemde vectoren maken met c()
De eenvoudigste manier om een benoemde vector te maken is door paren van name = value binnen c() te gebruiken. Namen mogen elke geldige tekenreeks zijn; als ze spaties of speciale tekens bevatten, zet je ze tussen backticks of aanhalingstekens.
# GDP in trillions USD
gdp <- c(USA = 27.4, China = 18.0, Germany = 4.1,
Japan = 4.2, UK = 3.1)
cat('GDP values:
')
print(gdp)
cat('Names:', names(gdp), '
')
cat('Values:', unname(gdp), '
')De functie names()
names(x) haalt de namen van een vector op als een tekstvector. Je kunt namen ook toewijzen nadat je de vector hebt gemaakt met names(x) <- c(...); hiermee wijzig je de vector op zijn plaats.
# Assign names after creation
temps <- c(22.1, 18.5, 25.3, 20.0)
cat('Before naming:', temps, '
')
names(temps) <- c('Mon', 'Tue', 'Wed', 'Thu')
cat('After naming:
')
print(temps)
# Retrieve names
cat('Days:', names(temps), '
')Elementen op naam benaderen
Benader elementen van een benoemde vector met x["name"] of x[["name"]]. Enkele blokhaken [] leveren een benoemde subset op; dubbele blokhaken [[]] leveren alleen de waarde zonder de naam op.
scores <- c(Math = 88, Science = 92, English = 75, History = 81)
# Single bracket: keeps name
cat('Math score (with name):
')
print(scores['Math'])
# Double bracket: just the value
cat('Science score (value only):', scores[['Science']], '
')
# Multiple names
cat('STEM subjects:
')
print(scores[c('Math', 'Science')])setNames() voor een functionele stijl
setNames(x, nm) retourneert een kopie van x met de namen ingesteld op nm, zonder het origineel te wijzigen. Dit is handig in pijplijnen waarin je een vector als onderdeel van een reeks bewerkingen een naam wilt geven.
# setNames returns a named copy (does not modify original)
raw_values <- c(0.85, 0.72, 0.91, 0.68)
metrics <- setNames(raw_values, c('Precision', 'Recall', 'F1', 'Accuracy'))
cat('Original (unchanged):', raw_values, '
')
cat('Named metrics:
')
print(metrics)
# Best metric
best_name <- names(which.max(metrics))
cat('Best metric:', best_name, '=', metrics[best_name], '
')Namen wijzigen
Je kunt afzonderlijke namen wijzigen door te indexeren in names(x). Dit is handig als je een subset van elementen een nieuwe naam wilt geven zonder de volledige vector opnieuw te maken.
prices <- c(apple = 1.20, bannana = 0.80, cherry = 3.50) # typo!
# Fix a single name
names(prices)[2] <- 'banana'
cat('Fixed names:
')
print(prices)
# Rename all
names(prices) <- c('Apple', 'Banana', 'Cherry') # capitalise
cat('Capitalised:
')
print(prices)Benoemde reeksen met seq() en names()
Je kunt een benoemde reeks maken door seq() te combineren met setNames(). Dit is vooral handig voor maandelijkse of wekelijkse indexen waarbij namen context toevoegen aan de numerieke waarden.
# Monthly average temperature with names
temps_monthly <- setNames(
c(3.1, 4.2, 8.5, 13.0, 17.2, 21.0, 23.5, 23.0, 19.0, 13.5, 7.8, 4.0),
month.abb
)
cat('Monthly temps:
')
print(temps_monthly)
cat('Summer avg:', mean(temps_monthly[c('Jun', 'Jul', 'Aug')]), '
')Benoemde vectoren filteren
Benoemde vectoren ondersteunen zowel logische als tekstindexering. Je kunt elementen op naam selecteren en ze tegelijkertijd op waarde filteren, waardoor benoemde vectoren zeer expressief zijn voor kleine opzoektabellen.
population <- c(Tokyo = 37.4, Delhi = 32.9, Shanghai = 28.5,
Dhaka = 22.5, Cairo = 21.3, Mumbai = 20.7)
# Select cities with population > 25 million
big_cities <- population[population > 25]
cat('Cities over 25M:
')
print(big_cities)
# Sort descending by population
cat('Ranked:
')
print(sort(population, decreasing = TRUE))Namen verwijderen met unname()
unname(x) verwijdert alle namen uit een vector en retourneert alleen de waarden. Dit is handig wanneer je gegevens doorgeeft aan functies die geen benoemde vectoren verwachten, of wanneer namen de uitvoer visueel onoverzichtelijk maken.
named_vec <- c(x1 = 10, x2 = 20, x3 = 30, x4 = 40)
cat('Named:
')
print(named_vec)
unnamed_vec <- unname(named_vec)
cat('Unnamed:
')
print(unnamed_vec)
# Check
cat('Has names after unname:', !is.null(names(unnamed_vec)), '
')Benoemde vectoren als opzoektabellen
Een van de krachtigste toepassingen van benoemde vectoren is als opzoektabel: sleutels aan waarden koppelen. Gebruik in plaats van een reeks if-else-instructies een benoemde vector en indexeer daarin.
# Map month abbreviation to number of days
days_in_month <- c(Jan=31, Feb=28, Mar=31, Apr=30, May=31,
Jun=30, Jul=31, Aug=31, Sep=30, Oct=31,
Nov=30, Dec=31)
# Look up specific months
query <- c('Mar', 'Jul', 'Nov')
cat('Days in', query[1], ':', days_in_month[query[1]], '
')
cat('Days in', query[2], ':', days_in_month[query[2]], '
')
cat('Days in', query[3], ':', days_in_month[query[3]], '
')Benoemde vectoren: belangrijkste feiten
Overzicht van de eigenschappen van benoemde vectoren in R:
- Maken met
c(name = value, ...)of toewijzen vianames(x) <- c(...) - Op naam benaderen met
x['name'](behoudt de naam) ofx[['name']](alleen de waarde) setNames(x, nm)retourneert een benoemde kopie zonder het origineel te wijzigenunname(x)verwijdert alle namen- Benoemde vectoren werken als elegante opzoektabellen (in plaats van reeksen if-else-instructies)
# Complete workflow
rates <- c(USD = 1.0, EUR = 0.92, GBP = 0.79, JPY = 149.5)
# Convert 100 USD to each currency
amount_usd <- 100
converted <- amount_usd * rates
cat('100 USD in other currencies:
')
print(round(converted, 2))Korte controle
Wat is het verschil tussen x['key'] en x[['key']] wanneer x een benoemde vector is?
Samenvatting: benoemde vectoren
Goed gedaan! De belangrijkste punten uit deze les:
- Benoemde vectoren koppelen elk element aan een tekstlabel
- Maken met de syntaxis
c(name = val)of toewijzen metnames(x) <- ... x['name']retourneert een benoemde subset;x[['name']]retourneert alleen de waardesetNames()is de functionele (niet-wijzigende) manier om namen toe te voegen- Gebruik benoemde vectoren als opzoektabellen ter vervanging van omslachtige if-else-reeksen
unname()verwijdert namen wanneer onbewerkte waarden nodig zijn
# Named vector as grade lookup
grade_map <- c('90'='A', '80'='B', '70'='C', '60'='D')
student_score <- 80
# Find grade bracket
brackets <- c(90, 80, 70, 60)
threshold <- max(brackets[brackets <= student_score])
cat('Score:', student_score, '-> Grade:', grade_map[as.character(threshold)], '
')Leer R met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 43
- Lessen
- 159
Veelgestelde vragen
Is de les “Benoemde vectoren en reeksen” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad R Academy, waaronder “Benoemde vectoren en reeksen”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus R Academy bevat in totaal 4 lessen.
Wat leer ik in “Benoemde vectoren en reeksen”?
Wijs namen aan vectoren toe en open ze voor leesbare code. Je oefent met R Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met R Academy te beginnen?
Ervaring vooraf is niet nodig. R Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.
Hoe lang duurt de les “Benoemde vectoren en reeksen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over R Academy?
Ja. Elke les over R Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- De dubbelepuntoperator voor gehele getalbereiken
- seq() voor aangepaste reeksen
- rep() voor herhalende waarden
- Benoemde vectoren en reeksen