To a data frame keyed by student ID, add a column indicating the student's timely completion term. Columns of supporting information are also added. Unrelated columns are dropped.
Arguments
- dframe
Data frame or data frame extension (e.g., data.table or tibble). Required variable:
{mcid}.- midfield_rec
MIDFIELD records term data frame or data frame extension. Required variables:
{mcid, term, level}.- ...
Not used for passing values; forces subsequent arguments to be referable only by name.
- sched_span
Integer scalar (default 4), the number of years an institution officially schedules for completing a program.
- span
Integer scalar (default 6), number of years to define timely completion, typically 4, 6, or 8 years (100%, 150%, 200% respectively of
sched_span).
Value
Data frame with the following properties:
Data frame class is preserved. Groups and keys are not preserved.
Rows are filtered for unique
mcidvalues.Column
{mcid}is retained (all other columns are dropped). New columns added:term_i.Initial term of a student's longitudinal record, encodedYYYYT. Extracted frommidfield_rec.level_i.Character. Student level (01 Freshman, 02 Sophomore, etc.) in their initial term. Extracted frommidfield_rec.adj_span.Numeric. Integer span of years for timely completion adjusted for a student's initial level.timely_term.Character. Latest term by which program completion would be considered timely for every student. EncodedYYYYT.
Details
In many studies, students must complete their programs in a specified time span to be considered "timely", for example 4, 6, or 8 years after admission. The latest term by which program completion would be considered timely is the timely completion term. By "completion" we mean an undergraduate earning their first baccalaureate degree (or degrees, for students earning more than one degree in the same term).
The timely completion term is required for determining data sufficiency
as well as timely completion status. The goal in either case is to refine
a population, that is, obtain a data frame of IDs that satisfy our
constraints. Thus timely_term() yields a column of timely term
values and columns of supporting information keyed by ID. All other columns
in dframe (if any) are dropped.
Our heuristic assigns span number of years (default 6) to every
student. For students admitted at second-year level or higher, the span is
reduced by one year for each full year the student is assumed to have
completed. For example, a student admitted at the second-year level is
assumed to have completed one year of a program, so their span is reduced by
one year. The adjusted span is added to their initial term to create the
timely_term values.
The supporting information in the output is provided so that the user
can review the findings. Moreover, data_sufficiency() and
completion_status() require one or both of the added columns
{term_i, timely_term}.
Examples
# Start with an excerpt from the student data set
dframe <- toy_student[1:10, .(mcid)]
# Add timely completion term column
timely_term(dframe, toy_term)
#> mcid term_i level_i adj_span timely_term
#> <char> <char> <char> <num> <char>
#> 1: MCID3111158953 19881 01 First-year 6 19933
#> 2: MCID3111159270 19881 01 First-year 6 19933
#> 3: MCID3111160513 19881 01 First-year 6 19933
#> 4: MCID3111162677 19881 01 First-year 6 19933
#> 5: MCID3111164287 19881 01 First-year 6 19933
#> 6: MCID3111171205 19881 01 First-year 6 19933
#> 7: MCID3111172083 19881 01 First-year 6 19933
#> 8: MCID3111213943 19891 01 First-year 6 19943
#> 9: MCID3111248941 19901 01 First-year 6 19953
#> 10: MCID3111250695 19901 01 First-year 6 19953
# Define timely completion as 200% of scheduled span (8 years)
timely_term(dframe, toy_term, span = 8)
#> mcid term_i level_i adj_span timely_term
#> <char> <char> <char> <num> <char>
#> 1: MCID3111158953 19881 01 First-year 8 19953
#> 2: MCID3111159270 19881 01 First-year 8 19953
#> 3: MCID3111160513 19881 01 First-year 8 19953
#> 4: MCID3111162677 19881 01 First-year 8 19953
#> 5: MCID3111164287 19881 01 First-year 8 19953
#> 6: MCID3111171205 19881 01 First-year 8 19953
#> 7: MCID3111172083 19881 01 First-year 8 19953
#> 8: MCID3111213943 19891 01 First-year 8 19963
#> 9: MCID3111248941 19901 01 First-year 8 19973
#> 10: MCID3111250695 19901 01 First-year 8 19973
# Existing timely_term column, if any, is overwritten
dframe[, timely_term := NA_character_][]
#> mcid timely_term
#> <char> <char>
#> 1: MCID3111158953 <NA>
#> 2: MCID3111159270 <NA>
#> 3: MCID3111160513 <NA>
#> 4: MCID3111162677 <NA>
#> 5: MCID3111164287 <NA>
#> 6: MCID3111171205 <NA>
#> 7: MCID3111172083 <NA>
#> 8: MCID3111213943 <NA>
#> 9: MCID3111248941 <NA>
#> 10: MCID3111250695 <NA>
timely_term(dframe, toy_term)
#> mcid term_i level_i adj_span timely_term
#> <char> <char> <char> <num> <char>
#> 1: MCID3111158953 19881 01 First-year 6 19933
#> 2: MCID3111159270 19881 01 First-year 6 19933
#> 3: MCID3111160513 19881 01 First-year 6 19933
#> 4: MCID3111162677 19881 01 First-year 6 19933
#> 5: MCID3111164287 19881 01 First-year 6 19933
#> 6: MCID3111171205 19881 01 First-year 6 19933
#> 7: MCID3111172083 19881 01 First-year 6 19933
#> 8: MCID3111213943 19891 01 First-year 6 19943
#> 9: MCID3111248941 19901 01 First-year 6 19953
#> 10: MCID3111250695 19901 01 First-year 6 19953