Bonjour,
J'ai un vecteur contenant des noms de communes.
Je souhaite enlever tous les accents aux noms.
Quelle est la façon la plus élégante de réaliser cela?
Merci!
Bonjour,
J'ai un vecteur contenant des noms de communes.
Je souhaite enlever tous les accents aux noms.
Quelle est la façon la plus élégante de réaliser cela?
Merci!
Bonjour,
Je ne connais pas de fonction R permettant d'enlever en une seule fois tous les mots contenant des accents quel que soit le type d'accent. Par contre, on peut utiliser la fonction "gsub" pour chaque type de lettre accentué, sur le principe suivant :
Du coup, si vous êtes amené à faire souvent ce genre de manip', cela peut valoir le coup de se créer une petite fonction "subAccent" par exemple, qui remplace toutes les lettres accentuées par leur équivalent non accentué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 v<-c("carré","sèche","être","là") v<-sub("é","e",v) v [1] "carre" "sèche" "être" "là" v<-sub("à","a",v) v [1] "carre" "sèche" "être" "la"
Bonne continuation
Cordialement,
A.D.
Forum R
Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .
Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.
ok pour l'instant, j'utilise qqch du genre
ce qui n'est pas très élégant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sub(sub(sub
La fonction est une bonne idée.
Merci!
Bonjour,
Il y a peut-être encore plus direct, mais pour commencer, tu peux déjà travailler par voyelle, en recherchant en une seule ligne toutes les variantes accentuées :
Il s'agit simplement d'utiliser des plages de caractères (entre []) dans le motif de l'expression régulière.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 > v <- c("carré", "sèche", "être", "là") > gsub("[éèëê]", "e", v) [1] "carre" "seche" "etre" "là"
Etpermet de traiter en une fois toutes les occurrences du motif dans une même chaîne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part gsub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 > sub("[éèëê]", "e", "créé") [1] "creé" > gsub("[éèëê]", "e", "créé") [1] "cree"
Re,
Il y a une fonction qui fait de la "traduction de caractères" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 > v <- c("carré", "sèche", "être", "là", "Ça") > chartr("éèëêÉÈËÊàÀçÇ", "eeeeEEEEaAcC", v) [1] "carre" "seche" "etre" "la" "Ca"
Partager