Manipulación de strings
Como podemos suponer, al trabajar con conjuntos de datos, nos algunos de ellos serán de tipo texto. En R, los _strings: son una parte fundamental para el manejo de datos y textos. Aquí tienes algunos conceptos básicos relacionados con el uso de strings en R:
Aunque ya lo sabemos, vale la pena recordar que un string es una secuencia de caracteres, como palabras o frases, encerrada entre comillas simples (' '
) o dobles (" "
).
Concatenación: Podemos combinar strings usando el operador
paste()
opaste0()
para unir varios strings en uno solo. La característica depaste0
es que antes de concatenar los vectores los pasa a tipocharacter
.
string1 = "Hola"
string2 = "mundo"
resultado = paste(string1, string2)
# resultado contendrá "Hola mundo"
Longitud de un String: Podemos obtener la longitud de un string usando la función
nchar()
.
mi_string = "Hola, mundo!"
longitud = nchar(mi_string)
# longitud contendrá 12
Substrings: Podemos extraer partes de un string utilizando la notación basada en índices que ya hemos visto en los vectores mediante la función
substr()
.
mi_string = "Hey, joe!"
substring = substr(mi_string, start = 1, stop = 3)
# substring contendrá "Hey"
** tolower() y toupper()**: Convierten un string a minúsculas o mayúsculas, respectivamente.
mi_string = "Hola, Mundo!"
minusculas = tolower(mi_string) # minusculas contendrá "hola, mundo!"
gsub(): Realiza sustituciones de patrones en un string.
mi_string = "Hola, mundo!"
nuevo_string = gsub("mundo", "Planeta", mi_string) # nuevo_string contendrá "Hola, Planeta!"
strsplit(): Divide un string en partes según el delimitador que definamos como segundo parámetro.
mi_string = "manzana pera naranja"
lista_de_frutas = strsplit(mi_string, " ")
# lista_de_frutas contendrá la lista "manzana", "pera", "naranja"
sprintf(): Da formato a un string utilizando una plantilla. Ver documentación para tener más información de los símbolos que permiten intercalar datos de diferentes tipos en el siguiente enlace.
nombre = "Juan"
edad = 37
mensaje = sprintf("Mi nombre es %s y tengo %d años.", nombre, edad)
# la variable mensaje contendrá "Mi nombre es Juan y tengo 30 años."
grepl(): Busca un patrón en un string y devuelve un valor lógico indicando si este se encuentra en él o no.
mi_string = "Hola, mundo!"
resultado = grepl("mundo", mi_string)
# resultado contendrá TRUE
str_trim(): Elimina espacios en blanco adicionales al principio y al final de un string.
mi_string = " Hola, mundo! "
string_limpio = str_trim(mi_string)
# string_limpio contendrá "Hola, mundo!"
Ejercicios
Dado el siguiente vector con fechas
fechas = c("01/01/2023", "15/03/2023", "22/06/2023", "04/09/2023", "10/10/2023", "25/12/2023", "07/04/2024", "19/08/2024", "30/11/2024", "12/05/2025")
queremos obtener un vector que solamente contenga los años. Finalmente, puedes usar la funciónunique
para eliminar los años duplicados.Dado el siguiente vector con nombres:
nombres = c("Juan Pérez", "MARÍA GONZÁLEZ", "pedro López", "Ana Martínez", "jUliA Nuñez", "CARLOS Sánchez", "lUisA RODRÍGUEZ", "Miguel Ángel García", "sOfía ruiz", "Diego Fernández")
queremos estandarizarlo para que todos estén en formato “NombreApellido” con la primera letra de cada palabra en mayúscula.
Nota: La función paste
tiene un parámetro para indicar el separador que queremos usar: sep
.