| Title: | Study Indicators Based on Dutch Higher Education Data (1CHO) |
| Version: | 0.1.0 |
| Description: | Calculates enrolment, graduation, dropout, and programme-switch indicators from the Dutch higher education registration data (1CHO) supplied by DUO. Includes an interactive 'Shiny' dashboard for exploring results. |
| License: | MIT + file LICENSE |
| URL: | https://github.com/cedanl/staat-van-onderwijsinstelling |
| BugReports: | https://github.com/cedanl/staat-van-onderwijsinstelling/issues |
| Encoding: | UTF-8 |
| Language: | nl |
| RoxygenNote: | 7.3.3 |
| Depends: | R (≥ 4.1.0) |
| Imports: | cli, dplyr, forcats, readr, rlang, shiny |
| Suggests: | bslib, DT, ggplot2, knitr, plotly, rmarkdown, scales, testthat (≥ 3.0.0), tibble, tidyr |
| VignetteBuilder: | knitr |
| Config/testthat/edition: | 3 |
| NeedsCompilation: | no |
| Packaged: | 2026-05-13 12:27:33 UTC; Aslam |
| Author: | Aslam Tanjung [aut, cre], Veerle van Son [aut], Damiëtte Bakx-van den Brink [aut] |
| Maintainer: | Aslam Tanjung <aslam.tanjung@surf.nl> |
| Repository: | CRAN |
| Date/Publication: | 2026-05-18 18:40:02 UTC |
staat1cho: Studie-indicatoren op basis van 1CHO-data
Description
Berekent instroom-, rendement-, uitval- en studiewisselindicatoren vanuit de 1CHO-aanlevering van DUO.
Author(s)
Maintainer: Aslam Tanjung aslam.tanjung@surf.nl
Authors:
Veerle van Son
Damiëtte Bakx-van den Brink
See Also
Useful links:
Bereken rendementsindicatoren per cohort
Description
Koppelt diplomagegevens aan het instroomcohort en berekent of een student binnen 3, 5 of 8 jaar een diploma heeft behaald.
Usage
bereken_rendement(cohorten_instroom, diploma_behaald)
Arguments
cohorten_instroom |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
Value
Een tibble met kolommen persoonsgebonden_nummer,
eerstejaar_instelling, jaar_eerste_diploma,
verblijfsjaar_eerste_diploma, diploma, rendement_xjaar,
en factorkolommen rendement_3jr, rendement_5jr, rendement_8jr
Examples
cohort <- tibble::tibble(
persoonsgebonden_nummer = c("S1", "S2"),
eerstejaar_instelling = 2020L
)
diploma <- tibble::tibble(
persoonsgebonden_nummer = "S1",
jaar_eerste_diploma = 2022L,
verblijfsjaar_eerste_diploma = 3L,
diploma = "Diploma behaald (excl. propedeuse)"
)
bereken_rendement(cohort, diploma)
Bereken studiewisselindicatoren per cohort
Description
Bepaalt per student of zij binnen 1 of 3 jaar van opleiding zijn gewisseld. Studenten die al zijn uitgevallen of gediplomeerd in de meetperiode worden buiten beschouwing gelaten.
Usage
bereken_studiewissel(
basisbestand,
cohorten_instroom,
diploma_behaald,
uitval_indicatoren
)
Arguments
basisbestand |
Tibble zoals gemaakt door |
cohorten_instroom |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
uitval_indicatoren |
Tibble zoals gemaakt door |
Value
Een tibble met kolommen persoonsgebonden_nummer,
studiewissel_1jr, studiewissel_3jr (factoren) en aanvullende
switch-kolommen met de opleiding, opleidingsvorm, niveau en sector na
de wissel
Examples
basis <- tibble::tibble(
persoonsgebonden_nummer = c("S1", "S1"),
verblijfsjaar_actuele_instelling = c(1L, 2L),
soort_inschrijving_actuele_instelling_label =
"hoofdinschrijving binnen het domein actuele instelling",
opleiding_actueel_equivalent = "34401",
inschrijvingsjaar = c(2020L, 2021L),
opleidingsvorm = "voltijd",
type_hoger_onderwijs_binnen_soort_hoger_onderwijs = "bachelor",
croho_onderdeel_actuele_opleiding = "techniek"
)
cohort <- tibble::tibble(
persoonsgebonden_nummer = "S1",
inschrijvingsjaar = 2020L,
eerstejaar_instelling = 2020L,
soort_diploma_instelling_label = NA_character_,
opleidingsvorm_label = "voltijd"
)
diploma <- tibble::tibble(
persoonsgebonden_nummer = character(0),
jaar_eerste_diploma = integer(0),
verblijfsjaar_eerste_diploma = integer(0),
diploma = character(0)
)
uitval <- tibble::tibble(
persoonsgebonden_nummer = "S1",
uitval_xjr = NA_real_
)
bereken_studiewissel(basis, cohort, diploma, uitval)
Bereken uitvalindicatoren per cohort
Description
Bepaalt voor elke student in het instroomcohort of zij zijn uitgevallen, zittend of gediplomeerd. Uitval wordt gemarkeerd als een student niet meer ingeschreven staat en geen diploma heeft.
Usage
bereken_uitval(basisbestand, diploma_behaald, cohorten_instroom, jaar)
Arguments
basisbestand |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
cohorten_instroom |
Tibble zoals gemaakt door |
jaar |
Integer, peiljaar van de analyse (bijv. |
Value
Een tibble met kolommen persoonsgebonden_nummer,
laatste_jaar_inschrijving, diploma, status (factor:
Diploma behaald / Zittend / Uitgevallen), uitval_xjr (jaar van uitval
t.o.v. instroomjaar), uitval_1jr en uitval_3jr (factoren).
Gooit een fout bij dubbele studenten of ontbrekende statussen.
Examples
basis <- tibble::tibble(
persoonsgebonden_nummer = c("S1", "S1", "S2"),
inschrijvingsjaar = c(2020L, 2021L, 2020L),
soort_inschrijving_actuele_instelling = "hoofdinschrijving"
)
diploma <- tibble::tibble(
persoonsgebonden_nummer = "S1",
jaar_eerste_diploma = 2022L,
verblijfsjaar_eerste_diploma = 3L,
diploma = "Diploma behaald (excl. propedeuse)"
)
cohort <- tibble::tibble(
persoonsgebonden_nummer = c("S1", "S2"),
eerstejaar_instelling = 2020L
)
bereken_uitval(basis, diploma, cohort, jaar = 2023L)
Bereken studiewissel voor een specifiek verblijfsjaar-paar
Description
Hulpfunctie die de switchlogica hergebruikt voor zowel de 1jr- als
3jr-meting. Een wissel wordt vastgesteld als een student in jaar doeljaar
een andere opleidingscode heeft dan in jaar 1, en het verschil in
kalenderjaren gelijk is aan doeljaar - 1.
Usage
bereken_wissel_xjr(
basisbestand,
zittend,
verblijfsjaren,
doeljaar,
label_gewisseld,
label_niet,
suffix
)
Arguments
basisbestand |
Tibble zoals gemaakt door |
zittend |
Tibble met de populatie waarvoor de wissel bepaald wordt |
verblijfsjaren |
Integer vector van lengte 2: begin- en eindjaar van
het meetvenster, bijv. |
doeljaar |
Integer, het verblijfsjaar waarop de wissel wordt gemeten |
label_gewisseld |
Character, label als student gewisseld is |
label_niet |
Character, label als student niet gewisseld is |
suffix |
Character, achtervoegsel voor de kolomnamen ( |
Value
Een tibble met alleen de studenten die gewisseld zijn, met kolommen voor wissel, nieuwe opleidingscode, opleidingsvorm, niveau en sector
Combineer alle indicatoren tot een analysebestand
Description
Voegt rendement-, uitval- en studiewisselindicatoren samen met het instroomcohort. Past kolomnamen en factorniveaus aan voor gebruik in rapportages.
Usage
combineer_indicatoren(
cohorten_instroom,
rendement_indicatoren,
uitval_indicatoren,
studiewissel_indicatoren
)
Arguments
cohorten_instroom |
Tibble zoals gemaakt door |
rendement_indicatoren |
Tibble zoals gemaakt door |
uitval_indicatoren |
Tibble zoals gemaakt door |
studiewissel_indicatoren |
Tibble zoals gemaakt door
|
Value
Een tibble met een rij per student en gecombineerde indicator-
kolommen, klaar voor rapportage. Bevat o.a. status, rendement,
uitval, studiewissel en alle onderliggende deelscores.
Examples
cohort <- tibble::tibble(
persoonsgebonden_nummer = "S1",
inschrijvingsjaar = 2020L,
eerstejaar_instelling = 2020L,
geslacht_label = "man",
locatie_label = "Breda",
opleiding_actueel_equivalent = "34401",
opleidingsvorm_label = "voltijd",
type_hoger_onderwijs_binnen_soort_hoger_onderwijs = "ba",
indicatie_internationale_student_label = "geen internationale student",
indicatie_eer_actueel_label = "geen EER-student",
croho_onderdeel_actuele_opleiding_label = "techniek",
leeftijd_per_peildatum_1_oktober = 19L,
postcodecijfers_student_op_1_oktober = "4818",
postcodecijfers_van_de_hoogste_vooropl_voor_het_ho = "4818",
soort_diploma_instelling_label = NA_character_
)
rendement <- tibble::tibble(
persoonsgebonden_nummer = "S1",
eerstejaar_instelling = 2020L,
jaar_eerste_diploma = NA_real_,
verblijfsjaar_eerste_diploma = NA_integer_,
diploma = NA_character_,
rendement_xjaar = factor(NA_character_),
rendement_3jr = factor("Geen diploma"),
rendement_5jr = factor("Geen diploma"),
rendement_8jr = factor("Geen diploma")
)
uitval <- tibble::tibble(
persoonsgebonden_nummer = "S1",
laatste_jaar_inschrijving = NA_real_,
diploma = NA_character_,
status = factor("Zittend"),
uitval_xjr = NA_real_,
uitval_1jr = factor("Na 1 jaar nog ingeschreven of diploma behaald"),
uitval_3jr = factor("Na 3 jaar nog ingeschreven of diploma behaald")
)
wissel <- tibble::tibble(
persoonsgebonden_nummer = "S1",
studiewissel_1jr = factor("Niet gewisseld binnen 1 jaar"),
studiewissel_3jr = factor("Niet gewisseld binnen 3 jaar"),
opleidingscode_na_switch1jr = factor(NA_character_),
opleidingsvorm_na_switch1jr = factor(NA_character_),
opleidingsniveau_na_switch1jr = factor(NA_character_),
sector_na_switch1jr = factor(NA_character_),
opleidingscode_na_switch3jr = factor(NA_character_),
opleidingsvorm_na_switch3jr = factor(NA_character_),
opleidingsniveau_na_switch3jr = factor(NA_character_),
sector_na_switch3jr = factor(NA_character_)
)
suppressWarnings(combineer_indicatoren(cohort, rendement, uitval, wissel))
Lees het 1CHO-bestand in en voeg label-kolommen toe
Description
Leest een semicolongescheiden CSV-bestand (UTF-8) in en voegt
extra _label-kolommen toe voor gebruik in rapportages. Het pakket
bevat een klein synthetisch voorbeeldbestand zonder echte persoonsgegevens
(inst/extdata/voorbeeld_1cho.csv).
Usage
maak_basisbestand(pad_invoer)
Arguments
pad_invoer |
Pad naar het semicolongescheiden CSV-bestand (UTF-8) |
Value
Een tibble met alle 1CHO-regels plus extra _label-kolommen die de
originele categorische waarden bewaren voor gebruik in rapportages
Examples
# voorbeeld_1cho.csv is a small synthetic dataset bundled with the package
pad <- system.file("extdata/voorbeeld_1cho.csv", package = "staat1cho")
basis <- suppressMessages(maak_basisbestand(pad))
Maak een bestand met het vroegst behaalde diploma per student
Description
Filtert het basisbestand op diplomasoorten die gelden als afgeronde opleiding en behoudt per student alleen het eerste diploma op basis van diplomajaar.
Usage
maak_diploma_behaald(basisbestand)
Arguments
basisbestand |
Tibble zoals gemaakt door |
Value
Een tibble met één rij per student met kolommen
persoonsgebonden_nummer, jaar_eerste_diploma,
verblijfsjaar_eerste_diploma en diploma. Gooit een fout bij
dubbele persoonsgebonden nummers.
Examples
basis <- tibble::tibble(
persoonsgebonden_nummer = c("S1", "S2"),
soort_diploma_instelling = c(
"Hoofd-bachelor-diploma binnen de actuele instelling",
NA_character_
),
diplomajaar = c(2022L, NA_integer_),
verblijfsjaar_actuele_instelling = c(3L, 1L)
)
maak_diploma_behaald(basis)
Maak een eerstejaarscohort per instelling
Description
Filtert het basisbestand op het opgegeven soort hoger onderwijs, hoofdinschrijvingen en eerste verblijfsjaar.
Usage
maak_instroom_cohort(basisbestand, soort_ho)
Arguments
basisbestand |
Tibble zoals gemaakt door |
soort_ho |
Character vector met toegestane waarden van
|
Value
Een tibble met één rij per student, aangevuld met kolom
eerstejaar_instelling (= inschrijvingsjaar). Gooit een fout als er
dubbele persoonsgebonden nummers zijn.
Examples
basis <- tibble::tibble(
persoonsgebonden_nummer = c("S1", "S2", "S3"),
soort_hoger_onderwijs = c("hbo", "wo", "hbo"),
soort_inschrijving_actuele_instelling_label =
"hoofdinschrijving binnen het domein actuele instelling",
verblijfsjaar_actuele_instelling = 1L,
inschrijvingsjaar = 2020L,
soort_diploma_instelling_label = NA_character_
)
maak_instroom_cohort(basis, "hbo")
Start het Staat van Onderwijsinstelling dashboard
Description
Opent de interactieve Shiny app waarmee je een 1CHO CSV-bestand kunt uploaden en studie-indicatoren kunt verkennen.
Usage
start_dashboard()
Value
No return value, called for side effects.
Examples
if (interactive()) {
start_dashboard()
}