Уровни коэффициента отбрасывания в заданном кадре данных
У меня есть фрейм данных, содержащий фактор. Когда я создаю подмножество этого фрейма данных, используяsubset()
или другая функция индексации, создается новый фрейм данных. Однако переменная фактора сохраняет все свои исходные уровни - даже если они не существуют в новом фрейме данных.
Это создает головную боль при выполнении граненых графиков или при использовании функций, основанных на факторных уровнях.
Какой самый краткий способ удалить уровни из фактора в моем новом фрейме данных?
Вот мой пример:
df <- data.frame(letters=letters[1:5],
numbers=seq(1:5))
levels(df$letters)
## [1] "a" "b" "c" "d" "e"
subdf <- subset(df, numbers <= 3)
## letters numbers
## 1 a 1
## 2 b 2
## 3 c 3
## but the levels are still there!
levels(subdf$letters)
## [1] "a" "b" "c" "d" "e"