2017-07-11 3 views
0

m'a donné un ensemble de données qui ressemble à ceciR: valeur Changement de nom dans la colonne (')

x <- factor(c("A","B","King's")) 

maintenant je veux changer la valeur King à C sans déconner avec A et B.

Je

essayé d'utiliser recodage de plyr,

x < - recodage (x, " 'king' = 'C';", comme factor.result = FAUX.)

mais je suis incapable de le faire parce que il contient (')

Des suggestions?

Répondre

2

Non dépendante de position

levels(x)[levels(x) == "King's"] <- "C" 
+0

Cela fonctionne parfaitement aussi bien. J'ai effectivement essayé cette nuit et je viens de réaliser que je n'ai besoin que d'ajouter une barre d'espace comme votre commande. – Maru

2

Cela fera l'affaire pour vous

x <- factor(c("A","B","King's")) 
levels(x)[3] <- "C" 
+0

De plus, niveaux (x) [niveaux (x)% en% "King's"] <- "C" qui n'est pas dépendant de la position comme mentionné par @manotheshark et extensible à plus d'un f niveau d'acteur. – dvarelas

+0

Cela fonctionne parfaitement! Merci – Maru

0

si vous aimez rester avec recodage: (pas vraiment recommandé dans ce cas)

x <- recode(x, "deparse(substitute(`King's`))='C'", as.factor.result=FALSE)