Ich versuche forcats::fct_relevel()
zu verwenden Faktoren in mydf nivellieren die Reihenfolge des Faktors in Nachschlag zum Spiel:Wie Faktor in Rbased auf einem anderen Tisch nivellieren
library(dplyr)
library(forcats)
mydf <- data.frame(id=1:10, f=as.factor(c("feb", "mar","mar","mar","jan","jan", "apr", "apr","mar", "jan")))
lookup <- data.frame(f=as.factor(c("jan", "feb", "mar", "apr"))) #the order i want
levels(mydf$f) #defaults to alphabetical
mydf %>% group_by(f) %>% dplyr::summarise(n = n()) #want this in the order of lookup$f
mydf %>%
mutate(f = fct_relevel(f, levels(mydf$f))) %>% #the problem line
group_by(f) %>% dplyr::summarise(n = n())
Ich verstehe, dass ich manuell die Ebene definieren innerhalb fct_relevel()
, aber ich kann es mir nicht leisten, es jedes Mal hart zu programmieren. Vielen Dank.
Warum nicht einfach 'levels (mydf $ f) <- lookup $ f' zuerst? – thelatemail
Ok so 'mydf%>% mutieren (f = Faktor (f, levels = lookup $ f))%>% group_by (f)%>% dplyr :: summarize (n = n())' funktioniert sicher. Gibt es ein Forkats-Äquivalent? – sullij
ok fair genug danke. – sullij