318 votes

Extraire les n derniers caractères d’une chaîne dans R

Comment puis-je obtenir les n derniers caractères d’une chaîne dans la R ? Y a-t-il une fonction comme droit de SQL ?

321voto

Andrie Points 66979

Je ne suis pas au courant de quoi que ce soit dans la base R, mais il est simple de faire une fonction pour ce faire, utilisez et :


C’est vectorisé, comme le souligne @mdsumner. Tenir compte :

254voto

Xu Wang Points 2212

Si vous ne me dérange pas en utilisant la paquet, est très pratique car vous pouvez utiliser des négatifs de compter en arrière :

Ou, comme Max souligne dans un commentaire à cette réponse,

50voto

bartektartanus Points 2472

Utilisez la fonction stri_sub de `` paquet. Pour obtenir la sous-chaîne de la fin, utiliser des nombres négatifs, Regardez ci-dessous pour les exemples :

Vous pouvez installer ce package de github : https://github.com/Rexamine/stringi

Il est disponible sur CRAN maintenant, il suffit de taper

pour installer ce package.

21voto

Andrew Points 4419
str = 'This is an example'
n = 7
result = substr(str,(nchar(str)+1)-n,nchar(str))
print(result)

> [1] "example"
> 

10voto

Laurent Points 438

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 Andriele code)

substrRight <- function(x, n){
  sapply(x, function(xx)
         substr(xx, (nchar(xx)-n+1), nchar(xx))
         )
}

> substrRight(c("12345","ABCDE"),2)
12345 ABCDE
 "45"  "DE"

Notez que j'ai changé d' (nchar(x)-n) de (nchar(x)-n+1) pour obtenir de l' n caractères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X