Quiero extraer los primeros (o últimos) n caracteres de una cadena. Este sería el equivalente a Excel LEFT()y RIGHT(). Un pequeño ejemplo:
# create a string
a <- paste('left', 'right', sep = '')
a
# [1] "leftright"
Me gustaría producir buna cadena que sea igual a las primeras 4 letras de a:
b
# [1] "left"
¿Qué tengo que hacer?

stringrsolución.El
stringrpaquete proporciona lastr_subfunción, que es un poco más fácil de usarsubstr, especialmente si desea extraer las partes correctas de su cadena:R> str_sub("leftright",1,4) [1] "left" R> str_sub("leftright",-5,-1) [1] "right"fuente
R:)stringrte ahorrará casi tanta molestia comolubridate.Puede obtener fácilmente las funciones Derecha () e Izquierda () a partir del paquete Rbase:
función correcta
right = function (string, char) { substr(string,nchar(string)-(char-1),nchar(string)) }función izquierda
left = function (string,char) { substr(string,1,char) }puede usar esas dos funciones personalizadas exactamente como left () y right () en Excel. Espero que te resulte útil
fuente
Hágalo simple y use las funciones básicas 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"La
substr()función te dice dónde empezar y pararsubstr(x, start, stop)fuente
Si viene desde Microsoft Excel, las siguientes funciones serán similares a
LEFT(),RIGHT()yMID()funciones.# 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) }Ejemplos:
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"fuente