Regroupement de 2 niveaux d'un facteur dans R [dupliquer]
Cette question a déjà une réponse ici:
J'ai une colonne de données qui est un facteur avec les niveaux A, B et C, je suis intéressé à combiner deux de ces niveaux en un seul facteur, de sorte qu'il deviendrait A et B, Avec B = B et C, ou peut - être une nouvelle variable A Et D, avec D = B et C. je peux trouver beaucoup de façons de le faire en bouclant la colonne avec des instructions if, mais je pense qu'il devrait y avoir une approche plus élégante et je me demandais si quelqu'un pouvait me diriger dans la bonne direction.
3 réponses
Utiliser levels(x) <- ...
pour spécifier de nouveaux niveaux, et de combiner certains niveaux précédents. Par exemple:
f <- factor(LETTERS[c(1:3, 3:1)])
f
[1] A B C C B A
Levels: A B C
Combinez maintenant " A " et " B " en un seul niveau:
levels(f) <- c("A", "A", "C")
f
[1] A A C C A A
Levels: A C
Si vous utilisez dplyr
tuyaux vous pouvez utiliser le forcats
package.
library(forcats)
f %>% fct_collapse(A = c("A","B"))
#[1] A A C C A A
#Levels: A C
La bibliothèque rockchalk est capable de combiner des niveaux. Je pense que c'est génial, si vous voulez combiner B et C ensemble dans un facteur, faites ceci:
library(rockchalk)
combineLevels(mydf$facVar,levs = c("B", "C"), newLabel = c("BandC") )