web-dev-qa-db-fra.com

Extraire le premier (ou le dernier) n caractères d'une chaîne

Je veux extraire le premier (ou le dernier) n caractères d'une chaîne. Ce serait l'équivalent de LEFT() et RIGHT() d'Excel. Un petit exemple:

# create a string
a <- paste('left', 'right', sep = '')
a
# [1] "leftright"

Je voudrais produire b, une chaîne qui est égale aux 4 premières lettres de a:

b
# [1] "left"

Que devrais-je faire?

65
Lisa Ann

Voir ?substr

R> substr(a, 1, 4)
[1] "left"
71
rcs

Le paquet stringr fournit le str_sub fonction, qui est un peu plus facile à utiliser que substr, surtout si vous voulez extraire des parties correctes de votre chaîne:

R> str_sub("leftright",1,4)
[1] "left"
R> str_sub("leftright",-5,-1)
[1] "right"
41
juba

Vous pouvez facilement obtenir les fonctions Right () et Left () à partir du package Rbase:

  • bonne fonction

    right = function (string, char){ substr(string,nchar(string)-(char-1),nchar(string)) }

  • fonction gauche

    left = function (string,char){ substr(string,1,char) }

vous pouvez utiliser ces deux fonctions personnalisées exactement comme left () et right () dans Excel. J'espère que vous le trouverez utile

19
Andrea Cirillo

Simplifiez-vous la vie et utilisez les fonctions de base R:

# To get the LEFT part:
> substr(a, 1, 4)
[1] "left"
> 
# To get the MIDDLE part:
> substr(a, 3, 7)
[1] "ftrig"
> 
# To get the RIGHT part:
> substr(a, 5, 10)
[1] "right"

La fonction substr() vous indique où démarrer et arrêter substr(x, start, stop)

1
Marcos RF