Приведем пример данных. Обратите внимание, что в этом фрейме данных оценки расположены не в определенном порядке, некоторые значения отсутствуют, а некоторые повторяются:
df <- data.frame(grades = c('1','4a','3', '3', '3', '2','5a','4a','4b','4c'))
> df
grades
1 1
2 4a
3 3
4 3
5 3
6 2
7 5a
8 4a
9 4b
10 4c
Мы можем создать числовой порядок c с помощью функции factor
, указав все уникальные уровни в их предполагаемом порядке, с помощью «order = T»:
df$grades_factor = factor(df$grades, levels = c('1','2','3','4a','4b','4c','5a'), ordered = T)
Наконец, мы можем просто преобразовать этот новый столбец в numeri c, чтобы выявить базовые числовые значения:
df$grades_num = as.numeric(df$grades_factor)
grades grades_factor grades_num
1 1 1 1
2 4a 4a 4
3 3 3 3
4 3 3 3
5 3 3 3
6 2 2 2
7 5a 5a 7
8 4a 4a 4
9 4b 4b 5
10 4c 4c 6