Присвойте числовые значения факторному столбцу - PullRequest
0 голосов
/ 06 мая 2020

Я отправлял этот вопрос месяц go, и после обновления R и Rstudio я столкнулся с той же проблемой.

Я хочу преобразовать коэффициенты в выровненные числовые c данные.

Таким образом, столбец Prox будет читать: Far, Far, Near, On, Far, Near, Far, Far, Рядом, далеко.

Я хотел бы присвоить этим факторам значение numeri c, где Far равно 1, Near равно 2, On равно 3.

Используя любой из этих кодов ниже

levels(Prox) levels(Prox) <- c(1, 2, 3)

OR

Prox_df <- Prox_df %>% mutate(Prox_df = case_when(Prox == "Far" ~ 3, Prox == "Near" ~ 2, Prox == "On" ~ 1))

привело к принуждению NA.

Я пытался установить уровни для этих факторов, но это не назначило значение numeri c. Мне нужно использовать это выровненное числовое значение c для порядковой модели. Если у Вас есть предложения, пожалуйста, дайте мне знать. Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 мая 2020

dplyr::case_when должно работать нормально.

Данные:

Prox_df <- data.frame(Prox = c("Far", "Far", "Near", "On", "Far", "Near", "Far", "Far", "Near", "Far"), 
                      stringsAsFactors = FALSE)

dplyr :: case_when

Prox_df <- Prox_df %>%
  mutate(Prox_df = case_when(Prox == "Far" ~ 1,
                             Prox == "Near" ~ 2,
                             Prox == "On" ~ 3))

dplyr :: recode

Prox_df <- Prox_df %>%
  mutate(Prox_df = recode(Prox, "Far" = 1, "Near" = 2, On = 3))

base :: factor

Prox_df <- Prox_df %>%
  mutate(Prox_df = factor(Prox, levels = c("Far", "Near", "On"), labels = 1:3, ordered = TRUE))
1 голос
/ 06 мая 2020

Решение Base R:

Prox_df$Prox <- as.integer(as.factor(Prox_df$Prox))

Использование данных из @HNSKD (спасибо):

Prox_df <- data.frame(Prox = c("Far", "Far", "Near", "On", "Far", "Near", "Far", "Far", "Near", "Far"), 
                      stringsAsFactors = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...