Extraire une partie numérique de chaînes de nombres et de caractères mélangés dans R
J'ai beaucoup de chaînes, et qui tendent à avoir le format suivant: Ab_Cd-001234.txt
Je veux le remplacer par 001234
. Comment puis-je l'obtenir dans la R?
source d'informationauteur user288609
Vous devez vous connecter pour publier un commentaire.
À l'aide de
gsub
ousub
vous pouvez faire ceci :vous pouvez utiliser
regexpr
avecregmatches
MODIFIER les 2 méthodes sont vectorisées et travaille pour un vecteur de chaînes de caractères.
La stringr paquet a beaucoup de raccourcis pratiques pour ce genre de travail:
Pour expliquer la regexp un peu:
[[:digit:]]
est un nombre de 0 à 9+
signifie que l'élément précédent (dans ce cas, un chiffre) sera adapté en une ou plusieurs foisCette page est également très utile pour ce genre de traitement de chaîne: http://en.wikibooks.org/wiki/R_Programming/Text_Processing
Vous pouvez utiliser
genXtract
de la qdap paquet. Cela prend à gauche en chaîne de caractères et un droit de chaîne de caractères et extrait les éléments entre.Bien que je préfère de beaucoup agstudy de réponse.
MODIFIER l'Extension de la réponse à la correspondance agstudy:
gsub Supprimer le préfixe et le suffixe:
package d'outils de Utilisation
file_path_sans_ext
à partir des outils pour supprimer l'extension et ensuite utilisersub
pour supprimer le préfixe:strapplyc Extraire les chiffres après et avant dot. Voir gsubfn page d'accueil pour plus d'info:
Noter que si l'on souhaite retourner un numérique, nous pourrions utiliser
strapply
plutôt questrapplyc
comme ceci: