Как настроить уровни заказа факторной переменной на 2+ условия?

   STP_name                                                           PCT
   <fct>                                                            <dbl>
 1 ENGLAND                                                           2.58
 2 MIDLANDS AND EAST OF ENGLAND                                      2.64
 3 LEICESTER, LEICESTERSHIRE AND RUTLAND STP                         2.31
 4 BATH, SWINDON AND WILTSHIRE STP                                   2.94
 5 KENT AND MEDWAY STP                                               2.8 
 6 BUCKINGHAMSHIRE, OXFORDSHIRE AND BERKSHIRE WEST STP               2.73
 7 NORTH CENTRAL LONDON STP                                          1.93
 8 NORTHAMPTONSHIRE STP                                              2.63
 9 SOMERSET STP                                                      3.41
10 SURREY HEARTLANDS STP                                             2.87

Я хотел бы заказать STP_name переменная фактора по их убывающим значениям в PCTОднако я хочу строки для ENGLAND а также MIDLANDS AND EAST OF ENGLAND появляться в начале уровней факторов независимо от их PCT значение.

Идеально ищет решение для котов, но база в порядке.

1 ответ

Решение

Предполагая, что у набора данных есть все unique 'STP_name', измените его на factor с levels указано на основе order "PCT", а затем добавьте два уровня ("АНГЛИЯ", "" МИДЛАНДЫ И ВОСТОК АНГЛИИ ") в начале с relevel или же fct_relevel (от forcats)

library(tidyverse)
library(forcats)
df1 %>%
    mutate(STP_name = fct_relevel(factor(STP_name, levels = STP_name[order(-PCT)]), 
              c("ENGLAND",  "MIDLANDS AND EAST OF ENGLAND")))
Другие вопросы по тегам