Как я могу использовать R для выполнения упорядоченной факторизации по длине?

#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