Ich habe einen Datenrahmen mit a factor. Wenn ich eine Teilmenge dieses Datenrahmens mit subsetoder einer anderen Indizierungsfunktion erstelle , wird ein neuer Datenrahmen erstellt. Die factorVariable behält jedoch alle ursprünglichen Ebenen bei, auch wenn sie im neuen Datenrahmen nicht vorhanden sind.
Dies führt zu Problemen beim Erstellen von Facetten oder beim Verwenden von Funktionen, die auf Faktorstufen beruhen.
Was ist der prägnanteste Weg, um Ebenen aus einem Faktor im neuen Datenrahmen zu entfernen?
Hier ist ein Beispiel:
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"