124 votes

Extraire les n premiers (ou derniers) caractères d'une chaîne de caractères

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

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

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

b
# [1] "left"

Que dois-je faire ?

118voto

rcs Points 22112

Voir ?substr

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

94voto

juba Points 15701

En stringr fournit le str_sub qui est un peu plus facile à utiliser que la fonction substr surtout si vous voulez extraire les bonnes parties de votre chaîne :

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

34voto

Andrea Cirillo Points 397

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

  • fonction droite

    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 trouverez cela utile

9voto

Marcos RF Points 197

Faites simple et utilisez les fonctions de base de 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"

En substr() vous indique où commencer et arrêter substr(x, start, stop)

8voto

gbganalyst Points 11

Si vous venez de Microsoft Excel, les fonctions suivantes seront similaires à LEFT() , RIGHT() y MID() fonctions.

# This counts from the left and then extract n characters

str_left <- function(string, n) {
  substr(string, 1, n)
}

# This counts from the right and then extract n characters

str_right <- function(string, n) {
  substr(string, nchar(string) - (n - 1), nchar(string))
}

# This extract characters from the middle

str_mid <- function(string, from = 2, to = 5){

  substr(string, from, to)
  }

Exemples :

x <- "some text in a string"
str_left(x, 4)
[1] "some"

str_right(x, 6)
[1] "string"

str_mid(x, 6, 9)
[1] "text"

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