Как я могу удалить неиспользуемые уровни из фрейма данных?

Учитывая следующие ложные данные:

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"?

Ответы на вопрос(3)

Ваш ответ на вопрос