У меня есть фрейм данных, содержащий factor
. Когда я создаю подмножество этого фрейма данных, используя subset
или другую функцию индексации, создается новый фрейм данных. Однако переменная factor
сохраняет все свои исходные уровни, даже если/если они не существуют в новом кадре данных.
Это вызывает проблемы при выполнении граненых графиков или при использовании функций, основанных на факторных уровнях.
Какой самый короткий способ удалить уровни из фактора в новом фрейме данных?
Вот пример:
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
# all levels are still there!
levels(subdf$letters)
## [1] "a" "b" "c" "d" "e"