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
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