| 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-05-18 21:18:08 UTC |
| Source: | https://github.com/cran/staat1cho |
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)bereken_rendement(cohorten_instroom, diploma_behaald)
cohorten_instroom |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
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
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 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)bereken_uitval(basisbestand, diploma_behaald, cohorten_instroom, jaar)
basisbestand |
Tibble zoals gemaakt door |
diploma_behaald |
Tibble zoals gemaakt door |
cohorten_instroom |
Tibble zoals gemaakt door |
jaar |
Integer, peiljaar van de analyse (bijv. |
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.
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 studiewisselindicatoren samen met het instroomcohort. Past kolomnamen en factorniveaus aan voor gebruik in rapportages.
combineer_indicatoren( cohorten_instroom, rendement_indicatoren, uitval_indicatoren, studiewissel_indicatoren )combineer_indicatoren( cohorten_instroom, rendement_indicatoren, uitval_indicatoren, studiewissel_indicatoren )
cohorten_instroom |
Tibble zoals gemaakt door |
rendement_indicatoren |
Tibble zoals gemaakt door |
uitval_indicatoren |
Tibble zoals gemaakt door |
studiewissel_indicatoren |
Tibble zoals gemaakt door
|
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.
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 student alleen het eerste diploma op basis van diplomajaar.
maak_diploma_behaald(basisbestand)maak_diploma_behaald(basisbestand)
basisbestand |
Tibble zoals gemaakt door |
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.
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)maak_instroom_cohort(basisbestand, soort_ho)
basisbestand |
Tibble zoals gemaakt door |
soort_ho |
Character vector met toegestane waarden van
|
Een tibble met één rij per student, aangevuld met kolom
eerstejaar_instelling (= inschrijvingsjaar). Gooit een fout als er
dubbele persoonsgebonden nummers 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() }