Как настроить уровни заказа факторной переменной на 2+ условия? - PullRequest
0 голосов
/ 30 августа 2018
   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 Ответ

0 голосов
/ 30 августа 2018

Предполагая, что в наборе данных есть все 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")))
...