#r
#r
Вопрос:
Например, у меня есть этот вектор:
df lt;- c(NA, "Travellers' Choice, Certificate of Excellence 2020, Certificate of Excellence 2017", "Certificate of Excellence 2017","Certificate of Excellence 2018, Certificate of Excellence 2017, Certificate of Excellence 2016")
Я хочу сделать что-то вроде этого:
df.ordered lt;- as.numeric(factor(df, levels=length(df), ordered=TRUE))
Чтобы получить это в качестве вывода:
[1] NA 10 4 12 Levels: 4 lt; 10 lt; 12
Ответ №1:
Вам просто нужно сделать уровни уникальными значениями в векторе:
as.numeric(factor(df, levels=sort(unique(df)), ordered=TRUE))
[1] 3 2 3 1
Комментарии:
1. Может быть, мой пример немного плох. Ваш пример также просто нумерует строки и не сортирует их. Попробуйте, например, следующее: df И результат будет [1] 1,2,1,3 (отредактировал мой пример)
2. Хорошо, тогда мы можем
sort()
перейти на уровни? См. правка3. Это все равно не сработает со всеми примерами. Я снова отредактировал свой пример с другими значениями. См.раздел правка. Результат будет: [1] NA 3 1 2