R: Simplifying code to convert letter grades to numeric grades

前端 未结 3 627
孤街浪徒
孤街浪徒 2021-01-17 22:27

I have written a function in R that will convert a data frame containing letter grades into numeric grades. I then use sapply() on each column of the data frame. Is there a

3条回答
  •  广开言路
    2021-01-17 23:02

    Here is a pretty fast hash approach that shines the more grades you have:

    library(qdap)
    
    grvec <- list("A+"=4.3,"A"=4,"A-"=3.7,"B+"=3.3,"B"=3,"B-"=2.7,
        "C+"=2.3,"C"=2,"C-"=1.7,"D+"=1.3,"D"=1,"D-"= 0.7, "F"=0)
    
    dat[] <- lapply(dat, lookup, list2df(grvec)[, c(2:1)])
    
    ##   final_exam quiz_avg homework_avg
    ## 1        2.0      4.0            4
    ## 2        1.7      2.7            4
    ## 3        1.3      3.3            4
    ## 4        3.3      3.3            4
    ## 5        0.0      3.3            4
    ## 6        3.0      3.7            4
    

提交回复
热议问题