Skip to contents

The obt package contains a series of functions to recode report card data into commonly used variables.

Report Card Marks to Achievement Levels


ele_rc |> 
  mutate(reading_levels = obt_recode_rc_to_levels(reading)) |> 
  select(school, id, reading, reading_levels) |> 
  slice_sample(n = 10)
#> # A tibble: 10 × 4
#>    school                            id reading reading_levels
#>    <chr>                          <int> <chr>   <fct>         
#>  1 Southpark Elementary School   535080 A-      Level 4       
#>  2 Shelbyville Elementary School 148374 B+      Level 3       
#>  3 Watkins Middle School         517330 C       Level 2       
#>  4 Degrassi Community School     206498 B-      Level 3       
#>  5 Shelbyville Elementary School 443053 D+      Level 1       
#>  6 Shelbyville Elementary School 224927 B       Level 3       
#>  7 Watkins Middle School         367910 B       Level 3       
#>  8 Springfield Elementary School 383306 63      Level 2       
#>  9 Shelbyville Elementary School 543836 ALT     ALT           
#> 10 Springfield Elementary School 256917 C       Level 2

Report Card Marks to Met Standard / Did Not Meet Standard


sec_rc |> 
  mutate(final_ps = obt_recode_rc_L34(final)) |> 
  select(school, id, course_number, final, final_ps) |> 
  slice_sample(n = 10)
#> # A tibble: 10 × 5
#>    school                     id course_number final final_ps             
#>    <chr>                   <int> <chr>         <chr> <chr>                
#>  1 Westerburg High School 958210 CGC1D         72    met_standard         
#>  2 Shermer High School    976978 TTJ3C         79    met_standard         
#>  3 Ridgemont HS           827675 PPL1OG        97    met_standard         
#>  4 Shermer High School    815195 PPL1O         85    met_standard         
#>  5 Shermer High School    903718 ASM3M         74    met_standard         
#>  6 Degrassi High          657121 GLC2OCT       60    did_not_meet_standard
#>  7 Ridgemont HS           584301 PAF3O         52    did_not_meet_standard
#>  8 Shermer High School    740592 KBBFN         0     did_not_meet_standard
#>  9 Ridgemont HS           634223 SVN3EC        77    met_standard         
#> 10 Degrassi High          792675 HFN2O         50    did_not_meet_standard

Report Card Marks to Pass Fail

Results that are not the traditional alpha/numeric mark remain the same. For example ALT (alternative education), I (Insufficent) and NA (missing data).


ele_rc |> 
  mutate(read_pass_fail = obt_recode_rc_pass_fail(reading)) |> 
  select(school, id, reading, read_pass_fail) |> 
  arrange(read_pass_fail) |> 
  group_by(read_pass_fail) |> 
  slice_sample(n = 2)
#> # A tibble: 10 × 4
#> # Groups:   read_pass_fail [5]
#>    school                            id reading read_pass_fail
#>    <chr>                          <int> <chr>   <chr>         
#>  1 Shelbyville Elementary School 235247 ALT     ALT           
#>  2 Watkins Middle School         125547 ALT     ALT           
#>  3 Shelbyville Elementary School 484956 I       I             
#>  4 Degrassi Community School     482432 I       I             
#>  5 Shelbyville Elementary School 331564 R       fail          
#>  6 Degrassi Community School     148463 R       fail          
#>  7 Springfield Elementary School 188906 A+      pass          
#>  8 Southpark Elementary School   347330 C       pass          
#>  9 Watkins Middle School         396929 NA      NA            
#> 10 Shelbyville Elementary School 117376 NA      NA

Report Letter Grade to Percent

This function will take a column that contains all alpha grades, or a combination of alpha and numeric grades, and convert the alpha grades to a numeric equivalent.

NOTE - this may produce a warning message: NAs introduced by coercion. This means that any non-standard alpha mark has been converted to NA.

  • A+ = 90
  • A = 85”
  • A- = 80
  • B+ = 78
  • B = 75
  • B- = 72”
  • C+ = 68
  • C = 65
  • C- = 62
  • D+ = 58
  • D = 55
  • D- = 52
  • D- = 52
  • R = 45
  • All else = NA

set.seed(168)

ele_rc |> 
  mutate(math_numeric = obt_recode_letter_percent(mathematics)) |> 
  select(school, id, mathematics, math_numeric) |> 
  slice_sample(n = 10)
#> # A tibble: 10 × 4
#>    school                            id mathematics math_numeric
#>    <chr>                          <int> <chr>              <dbl>
#>  1 Shelbyville Elementary School 141128 C+                    68
#>  2 Shelbyville Elementary School 251837 73                    73
#>  3 Watkins Middle School         527509 B+                    78
#>  4 Springfield Elementary School 337938 78                    78
#>  5 Shelbyville Elementary School 552172 78                    78
#>  6 Southpark Elementary School   309292 A-                    80
#>  7 Shelbyville Elementary School 333046 50                    50
#>  8 Watkins Middle School         211346 C+                    68
#>  9 Watkins Middle School         343537 A-                    80
#> 10 Springfield Elementary School 530202 C-                    62