Remplacer des caractères dans les chaînes
Je voudrais supprimer des caractères spécifiques de chaînes de caractères dans un vecteur, semblable à la Rechercher et Remplacer fonction dans Excel.
Voici les données que j'ai commencer:
group <- data.frame(c("12357e", "12575e", "197e18", "e18947")
J'ai commencer avec la première colonne; je veux produire la deuxième colonne par la suppression de la e
's:
group group.no.e
12357e 12357
12575e 12575
197e18 19718
e18947 18947
Vous devez vous connecter pour publier un commentaire.
Avec une expression régulière et la fonction
gsub()
:Ce
gsub
fait ici est de remplacer chaque occurrence de"e"
avec une chaîne vide""
.Voir
?regexp
ougsub
pour obtenir de l'aide.fixed = TRUE
qui pourrait la rendre plus rapide.fixed=TRUE
empêche R à partir de l'utilisation d'expressions régulières, qui permettent plus flexible de filtrage, mais prendre le temps de calcul. Si tout ce qui est nécessaire est la suppression d'une seule chaîne constante "e", elles ne sont pas nécessaires.sub("e", "", group)
de tenir le même résultat?e
qu'il trouve dans chaque élémentLes expressions régulières sont vos amis:
Maintenant utiliser
gsub()
avec le plus simple possible remplacement modèle: chaîne vide:require(stringr);group$groupNoE <- str_replace(group$group, "e", "")
sub
, donc il ne remplacer la première occurrence du motif. Vous devez utiliserstr_replace_all
si vous voulais le même comportement quegsub
.Résumant 2 façons de remplacer des chaînes:
1) Utilisation
gsub
2) Utiliser le
stringr
paquetLes deux vont produire le désir de sortie:
gsub()
a déjà été mentionné dans les deux autres réponsesVous n'avez pas besoin de créer un bloc de données à partir du vecteur de chaînes de caractères, si vous souhaitez remplacer certains caractères. Les expressions régulières est un bon choix pour elle comme il a déjà été mentionné par @Andrie et @Dirk Eddelbuettel.
Attention, si vous souhaitez remplacer des caractères spéciaux, comme des points, vous devez recourir à plein la syntaxe d'expression régulière, comme montré dans l'exemple ci-dessous:
ceci va produire
gsub("\\.", " ", ctr_names)
Utiliser le stringi package: