| Title: | Study Indicators Based on Dutch Higher Education Data (1CHO) |
|---|---|
| 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. |
| Authors: | Aslam Tanjung [aut, cre], Veerle van Son [aut], Damiëtte Bakx-van den Brink [aut] |
| Maintainer: | Aslam Tanjung <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.0 |
| Built: | 2026-06-04 11:18:50 UTC |
| Source: | https://github.com/cedanl/staat-van-onderwijsinstelling |
Koppelt diplomagegevens aan het instroomcohort en berekent of een student binnen 3, 5 of 8 jaar een diploma heeft behaald.
bereken_rendement(cohorten_instroom, diploma_behaald, niveau = "student")bereken_rendement(cohorten_instroom, diploma_behaald, niveau = "student")
cohorten_instroom |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
niveau |
Analyseniveau: |
Een tibble met kolommen voor de sleutel(s), eerstejaar_instelling,
jaar_eerste_diploma, verblijfsjaar_eerste_diploma, diploma,
rendement_xjaar, en factorkolommen rendement_3jr, rendement_5jr,
rendement_8jr
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)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)
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.
bereken_studiewissel( basisbestand, cohorten_instroom, diploma_behaald, uitval_indicatoren )bereken_studiewissel( basisbestand, cohorten_instroom, diploma_behaald, uitval_indicatoren )
basisbestand |
Tibble zoals gemaakt door |
cohorten_instroom |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
uitval_indicatoren |
Tibble zoals gemaakt door |
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
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)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)
Bepaalt voor elke student (of inschrijving) in het instroomcohort of zij zijn uitgevallen, zittend of gediplomeerd. Uitval wordt gemarkeerd als een student niet meer ingeschreven staat en geen diploma heeft.
bereken_uitval( basisbestand, diploma_behaald, cohorten_instroom, jaar, niveau = "student" )bereken_uitval( basisbestand, diploma_behaald, cohorten_instroom, jaar, niveau = "student" )
basisbestand |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
cohorten_instroom |
Tibble zoals gemaakt door |
jaar |
Integer, peiljaar van de analyse (bijv. |
niveau |
Analyseniveau: |
Een tibble met de sleutelkolom(men), 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 sleutelcombinaties of
ontbrekende statussen.
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)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)
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.
bereken_wissel_xjr( basisbestand, zittend, verblijfsjaren, doeljaar, label_gewisseld, label_niet, suffix )bereken_wissel_xjr( basisbestand, zittend, verblijfsjaren, doeljaar, label_gewisseld, label_niet, suffix )
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 ( |
Een tibble met alleen de studenten die gewisseld zijn, met kolommen voor wissel, nieuwe opleidingscode, opleidingsvorm, niveau en sector
Voegt rendement-, uitval- en (optioneel) studiewisselindicatoren samen met het instroomcohort. Past kolomnamen en factorniveaus aan voor gebruik in rapportages.
combineer_indicatoren( cohorten_instroom, rendement_indicatoren, uitval_indicatoren, studiewissel_indicatoren = NULL, niveau = "student" )combineer_indicatoren( cohorten_instroom, rendement_indicatoren, uitval_indicatoren, studiewissel_indicatoren = NULL, niveau = "student" )
cohorten_instroom |
Tibble zoals gemaakt door |
rendement_indicatoren |
Tibble zoals gemaakt door |
uitval_indicatoren |
Tibble zoals gemaakt door |
studiewissel_indicatoren |
Tibble zoals gemaakt door
|
niveau |
Analyseniveau: |
Een tibble met gecombineerde indicatorkolommen, klaar voor
rapportage. Bevat o.a. status, rendement, uitval en alle
onderliggende deelscores. Bij niveau = "student" zijn ook
studiewisselkolommen aanwezig als studiewissel_indicatoren is meegegeven.
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))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))
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).
maak_basisbestand(pad_invoer)maak_basisbestand(pad_invoer)
pad_invoer |
Pad naar het semicolongescheiden CSV-bestand (UTF-8) |
Een tibble met alle 1CHO-regels plus extra _label-kolommen die de
originele categorische waarden bewaren voor gebruik in rapportages
# 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))# 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))
Filtert het basisbestand op diplomasoorten die gelden als afgeronde opleiding en behoudt per sleutel alleen het eerste diploma op basis van diplomajaar.
maak_diploma_behaald(basisbestand, niveau = "student")maak_diploma_behaald(basisbestand, niveau = "student")
basisbestand |
Tibble zoals gemaakt door |
niveau |
Analyseniveau: |
Een tibble met één rij per student (bij niveau = "student") of per
student-opleidingcombinatie (bij niveau = "inschrijving"), met kolommen
voor de sleutel(s), jaar_eerste_diploma, verblijfsjaar_eerste_diploma
en diploma. Gooit een fout bij dubbele sleutelcombinaties.
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)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)
Filtert het basisbestand op het opgegeven soort hoger onderwijs, hoofdinschrijvingen en eerste verblijfsjaar.
maak_instroom_cohort(basisbestand, soort_ho, niveau = "student")maak_instroom_cohort(basisbestand, soort_ho, niveau = "student")
basisbestand |
Tibble zoals gemaakt door |
soort_ho |
Character vector met toegestane waarden van
|
niveau |
Analyseniveau: |
Een tibble met een rij per student (bij niveau = "student") of per
student-opleidingcombinatie (bij niveau = "inschrijving"), aangevuld met
kolom eerstejaar_instelling (= inschrijvingsjaar). Gooit een fout als er
dubbele sleutelcombinaties zijn.
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")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")
Opent de interactieve Shiny app waarmee je een 1CHO CSV-bestand kunt uploaden en studie-indicatoren kunt verkennen.
start_dashboard()start_dashboard()
No return value, called for side effects.
if (interactive()) { start_dashboard() }if (interactive()) { start_dashboard() }