extrait une sous-chaîne dans la R selon un modèle
Supposons que j'ai une liste de chaîne de caractères: string = c("G1:E001", "G2:E002", "G3:E003")
. Maintenant, j'espère obtenir un vecteur de string qui contient uniquement les parties après les deux-points ":", j'.e substring = c(E001,E002,E003)
. Est-il un moyen commode dans la R pour ce faire? À l'aide de substr
? Merci!
Vous devez vous connecter pour publier un commentaire.
Voici quelques façons:
1) sous
2) strsplit
3) lire.tableau
4) sous-chaîne
Cela suppose deuxième partie commence toujours au niveau de la 4ème personnage (ce qui est le cas dans l'exemple de la question):
4a) sous-chaîne/regex
Si le côlon ne sont pas toujours dans une position connue, nous pourrions modifier (4) en faisant une recherche:
5) strapplyc
strapplyc
retours entre parenthèses partie:6) lire.dcf
Cette une ne fonctionne que si le sous-chaînes avant le côlon sont uniques (ce qu'ils sont dans l'exemple de la question). Aussi il faut que le séparateur d'être colon (qui est dans la question). Si un autre séparateur ont été utilisés, puis nous avons pu utiliser
sub
de le remplacer par un colon de la première. Par exemple, si le séparateur étaient_
puisstring <- sub("_", ":", string)
AJOUTÉ.
strapplyc
etread.dcf
solutions.NOTE.
L'entrée
string
est supposé être:_
comme séparateur et deux variables distinctes pour le préfixe et le suffixe @Grothendieck réponse:prefix <- sub("_.*", "", variable)
etsuffix <- sub(".*_", "", variable)
Par exemple à l'aide de
gsub
ousub
Voici une autre réponse simple
La fin de la partie, mais pour la postérité, le stringr paquet (une partie de la populaire "tidyverse" suite de paquets) fournit maintenant des fonctions ainsi que l'harmonisation des signatures pour la manipulation des chaînes:
Cela devrait le faire:
donne
g
degsub
..Si vous utilisez
data.table
puiststrsplit()
est un choix naturel: