Extraire les n derniers caractères d'une chaîne en R
Comment puis-je obtenir les n derniers caractères d'une chaîne en R?
Est-il une fonction SQL DROIT?
Vous devez vous connecter pour publier un commentaire.
Comment puis-je obtenir les n derniers caractères d'une chaîne en R?
Est-il une fonction SQL DROIT?
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas au courant de quoi que ce soit dans la base de R, mais il est simple de faire une fonction pour faire cela en utilisant
substr
etnchar
:C'est vectorisée, comme @mdsumner points. Considérer:
nchar(x)
deux fois par de l'affecter à une variable locale?Si vous n'avez pas l'esprit à l'aide de la
stringr
paquet,str_sub
est très pratique, car vous pouvez utiliser des négatifs de compte à rebours:Ou, comme Max de points dans un commentaire à cette réponse,
stringr
avait été refaite à l'aide destringi
comme backend, il doit donc travailler avec NAs, etc. maintenant.Utilisation
stri_sub
fonction destringi
paquet.Pour obtenir des sous-chaîne à partir de la fin, utiliser des nombres négatifs.
Regardez ci-dessous quelques exemples:
Vous pouvez installer ce package de github: https://github.com/Rexamine/stringi
Il est disponible sur le CRAN maintenant, il suffit de taper
pour installer ce package.
Mise à JOUR: comme l'a noté mdsumner, le code d'origine est déjà saisis parce que substr est. Aurait dû être plus prudent.
Et si vous voulez une version vectorisée (basé sur Andrie's code)
Noter que j'ai changé
(nchar(x)-n)
à(nchar(x)-n+1)
pour obtenirn
caractères.(nchar(x)-n)
à(nchar(x)-n+1)
"Un autre, assez simple façon est d'utiliser des expressions régulières et
sub
:Afin de se débarrasser de tout ce suivi par un caractère". Pour saisir plusieurs caractères à la fin, ajouter cependant de nombreux points dans l'anticipation de l'assertion:
où
.{2}
signifie..
, ou "deux personnages", donc, qui signifie "se débarrasser de tout suivi de deux caractères".pour les trois personnages, etc. Vous pouvez définir le nombre de caractères à saisir avec une variable, mais vous aurez à
paste
la valeur de la variable dans l'expression régulière:regmatches(x, regexpr(".{6}$", x))
Une alternative à
substr
est de diviser la chaîne en une liste de caractères simples et les processus qui:Une simple base de R solution à l'aide de la
substring()
fonction (qui savait que cette fonction existait?):Cela prend avantage de fondamentalement
substr()
en dessous, mais a par défaut la valeur de fin de 1 000 000.Exemples:
- Je utiliser
substr
trop, mais d'une manière différente. Je veux extraire les 6 derniers caractères de "Donnez-moi votre nourriture." Voici les étapes:(1) Diviser les personnages
(2) Extraire les 6 derniers caractères
De sortie:
Chaque caractère peut être consulté par
splits[[1]][x]
, où x est de 1 à 6.quelqu'un avant utilise une solution similaire à la mienne, mais je la trouve plus facile de penser comme ci-dessous:
Cela apportera les derniers caractères souhaités.
Essayez ceci:
Il devraient donner:
J'ai utilisé le code suivant pour obtenir le dernier caractère d'une chaîne.
Vous pouvez jouer avec les nchar(stringOfInterest) de comprendre comment obtenir les derniers caractères.
Un peu de modification sur @Andrie solution permet également le complément:
Que c'était ce que je cherchais. Et il invite à gauche:
Juste au cas où si une plage de caractères doivent être choisis: