Usuwanie określonego poziomu współczynnika ze zmiennej współczynnika

Mam ramkę danych, która ma kilka zmiennych, które mają 5 poziomów czynnika. Chcę usunąć tylko jeden z tych poziomów. Najpierw przypisałem wszystkie instancje tego poziomu do NA, a następnie użyłemdroplevels polecenie, aby pozbyć się pustych poziomów.

Jednak dla jednej zmiennej w mojej ramce danych jeden z poziomów, których nie chcę upuścić, nie zawiera żadnych obserwacji. Czy istnieje sposób na usunięcie tylko określonego poziomu czynnika, a nie tylko pustych.

Oto powtarzalny przykład

df <- data.frame(var1=rep(letters[1:5],2),var2=rep(letters[5:1],2),var3=c("a","c","d","e","a","c","d","e","a","c"))
levels(df$var3)<-c("a","c","d","e","b")

To ustawia ramkę danych, taką jak moja. Teraz chcę usunąć wszystkie wystąpienia poziomu e, a następnie upuścić go jako możliwy poziom. Robię to za pomocą poniższego kodu.

df2<-replace(df, df=="e",NA)
df2<-droplevels(df2)

Problem polega na tym, że używamdroplevels spada również poziom b z var3. Nie chcę usuwać poziomu b tylko poziom e ze wszystkich zmiennych. Szukałem sposobu na usunięcie tylko określonego poziomu, ale nie znalazłem odpowiedzi. Czy ktoś może mi pokazać, jak usunąć tylko określony poziom czynnika? To, co chciałbym idealnie, todroplevels polecenie, które mogę powiedzieć, aby usunąć poziom e. Czy taka funkcja istnieje?

questionAnswers(2)

yourAnswerToTheQuestion