Превратить список столбцов данных в упорядоченные факторы - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть фрейм данных с несколькими (но не всеми) столбцами, которые я хочу превратить в упорядоченные факторы.

Мои смоделированные данные:

df <- structure(list(var1 = c("level1", "level1", "level2", "level3", "level1", "level4", "level4"), 
                 var2 = c("level3", "level1", "level2", "level4", "level1", "level4", "level3"), 
                 var3 = c("level4", "level3", "level1", "level2", "level4", "level3", "level1")), 
            .Names = c("var1", "var2", "var3"), 
            row.names = c(NA, 7L), 
            class = "data.frame")

Вектор изменяемых столбцов определяется следующим образом:

ToFactors <- c("var1", "var2")

Я попробовал следующее:

df[ToFactors] <- factor(df[ToFactors], ordered = TRUE, 
                 levels = c("level1", "level2", "level3", "level4"))

Однако, это превращает все клетки в NA. Что я делаю не так?

1 Ответ

0 голосов
/ 13 ноября 2018

Простое решение с использованием lapply

 df[, ToFactors] <- lapply(df[, ToFactors], factor, ordered = T, levels = c("level1", "level2", "level3", "level4"))

Ответ Обновлено Спасибо @Pratik за изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...