Учитывая следующие макетные данные:
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)
и обойти проблему, но не reset уровни переменных в своей основе (что важно для меня, так как это раннее изменение, которое я делаю к набору данных, который будет продолжаться на протяжении всего анализа). Более того, xtabs
- это другой класс из table
, который даст мне головные боли позже в проекте.
Вопрос: как я могу автоматически изменить levels(y$let)
, чтобы он не отображал уровни, которые были удалены при создании подмножества? В этом случае, как я могу заставить его показать [1] "b" "c" "d" "e"
?