Comment supprimer tous les caractères spéciaux de la chaîne dans R et les remplacer par des espaces?
Certains caractères spéciaux à supprimer sont: ~!@#$%^&*(){}_+:"<>?,./;'[]-=
J'ai essayé regex
avec le [:punct:]
motif mais cela ne supprime que les signes de ponctuation.
Question 2: Et comment supprimer des caractères de langues étrangères comme â í ü Â á ą ę ś ć
:?
Réponse: Utilisez [^[:alnum:]]
pour enlever ~!@#$%^&*(){}_+:"<>?,./;'[]-=
et utiliser [^a-zA-Z0-9]
pour supprimer également â í ü Â á ą ę ś ć
dans regex
ou regexpr
fonctions.
sub
ougsub
fonctions.Réponses:
Vous devez utiliser des expressions régulières pour identifier les caractères indésirables. Pour le code le plus facilement lisible, vous voulez le
str_replace_all
dustringr
package, biengsub
qu'à partir de la base R fonctionne aussi bien.L'expression régulière exacte dépend de ce que vous essayez de faire. Vous pouvez simplement supprimer les caractères spécifiques que vous avez indiqués dans la question, mais il est beaucoup plus facile de supprimer tous les caractères de ponctuation.
(L'équivalent de base R est
gsub("[[:punct:]]", " ", x)
.)Une alternative consiste à échanger tous les caractères non alphanumériques.
Notez que la définition de ce qui constitue une lettre, un chiffre ou un signe de ponctuation varie légèrement en fonction de vos paramètres régionaux, vous devrez donc peut-être expérimenter un peu pour obtenir exactement ce que vous voulez.
la source
" "
par""
sinon vous avez un espace blanc vide dans la chaîne.â í ü Â á
??regex
et?regexpr
.[^[:alnum:]]
par[^a-zA-Z0-9]
ou éventuellement\\W
.Au lieu d'utiliser regex pour supprimer ces caractères "fous", convertissez-les simplement en ASCII, ce qui supprimera les accents, mais conservera les lettres.
ce qui se traduit par
la source
iconv(astr, from="UFT-8", to="ASCII//TRANSLIT")
, sinon avec des caractères français commeç
ça va un peu drôle.Convertissez les caractères spéciaux en apostrophe,
Codez-le ci-dessous pour supprimer une apostrophe supplémentaire
Utilisez la
gsub(..)
fonction pour remplacer le caractère spécial par une apostrophela source