604 Stimmen

Nicht verwendete Faktorebenen in einem untergliederten Datenrahmen löschen

Ich habe einen Datenrahmen, der eine factor . Wenn ich eine Teilmenge dieses Datenrahmens mit subset oder einer anderen Indizierungsfunktion wird ein neuer Datenrahmen erstellt. Allerdings muss die factor Variable behält alle ihre ursprünglichen Ebenen bei, auch wenn sie im neuen Datenrahmen nicht vorhanden sind.

Dies führt zu Problemen bei der Erstellung von Facettenplots oder bei der Verwendung von Funktionen, die auf Faktorstufen beruhen.

Wie lassen sich Ebenen aus einem Faktor im neuen Datenrahmen am einfachsten 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"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X