作为R的初学者,我遇到了制作专栏的问题。
我有一张学生桌'基于分数和百分位数的成绩。
让我说我有这样的事情。
enter image description here 我希望创建一个名为Finalgrade的新列。为此,我想比较这两个列并将更高等级指定为最终等级。任何人都可以帮我这个吗?
答案 0 :(得分:0)
我们假设评分系统有如下序列
grade_seq <- c('A', 'AB', 'B', 'BC', 'C', 'D', 'E', 'F')
然后
library(dplyr)
df <- df %>%
mutate_if(is.factor, as.character) %>%
mutate(Finalgrade = grade_seq[pmin(match(Gradepoints, grade_seq), match(Gradepercentile, grade_seq))])
给出
Gradepoints Gradepercentile Finalgrade
1 A B A
2 A D A
3 F D D
4 F F F
5 AB BC AB
6 AB C AB
示例数据:
df <- data.frame(Gradepoints = c('A','A','F','F','AB','AB'),
Gradepercentile = c('B','D','D','F','BC','C'))