rstudio通过比较另外两列(alphebet)创建一个新列

时间:2018-05-20 02:18:31

标签: r sorting

作为R的初学者,我遇到了制作专栏的问题。

我有一张学生桌'基于分数和百分位数的成绩。

让我说我有这样的事情。

enter image description here 我希望创建一个名为Finalgrade的新列。为此,我想比较这两个列并将更高等级指定为最终等级。任何人都可以帮我这个吗?

1 个答案:

答案 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'))