Как я могу удалить неиспользуемые уровни из фрейма данных?
Учитывая следующие ложные данные:
set.seed(123)
x <- data.frame(let = sample(letters[1:5], 100, replace = T),
num = sample(1:10, 100, replace = T))
y <- subset(x, let != 'a')
Создание таблицыy$let
доходность
a b c d e
0 20 21 22 18
Но я не хочуa
чтобы показать больше. Если я попытаюсь сделать это:
levels(y$let) <- factor(y$let)
Я путаю частоты, так как сейчасtable(y$let)
дает мне
b d c e
0 20 21 40
Я знаю, что мог сделатьxtabs(~ y$let, drop.unused.levels = T)
и обойти проблему, но она не сбрасывает переменные уровни в своей основе (что важно для меня, так как это раннее изменение, которое я делаю в наборе данных, который будет продолжаться на протяжении всего анализа). Кроме того,xtabs
это другой класс отtable
, что даст мне головную боль позже в проекте.
Вопрос: как я могу автоматически изменитьlevels(y$let)
так что он не показывает уровни, которые были отброшены при создании подмножества? В этом случае, как я могу сделать это показать[1] "b" "c" "d" "e"
?