Concatenar textos en R con paste y paste0
Las funciones paste
y paste0
son las funciones de R utilizadas para concatenar (unir) cadenas de texto. La principal diferencia entre ambas funciones es que paste
concatena textos separados por un espacio vacío (por defecto), mientras que paste0
concatena textos sin ningún espacio.
La función paste0
La función paste0
permite concatenar dos o más cadenas de texto en una sin espacios, así que si necesitas añadir espacios utiliza la función paste o añade un espacio a los textos cuando sea necesario. Ten en cuenta que también puedes introducir números, que se convertirán en caracteres mediante la función as.character.
En el siguiente ejemplo estamos concatenando dos cadenas de texto para crear una nueva. Observa que hemos añadido un espacio al principio del segundo texto para separar las palabras.
paste0("Primer texto", " segundo texto")
"Primer texto segundo texto"
La función también es útil para unir resultados pasando una variable a la función. En el siguiente ejemplo estamos concatenando un texto y un valor almacenado en una variable.
x <- 12
paste0("El valor es: ", x)
"El valor es: 12"
Concatenar vectores
La función también permite trabajar con vectores. Ten en cuenta que los elementos de los vectores se concatenarán término a término. En el siguiente bloque de código concatenamos un vector del 1 al 10 con un signo de exclamación.
paste0(1:10, "!")
"1!" "2!" "3!" "4!" "5!" "6!" "7!" "8!" "9!" "10!"
También puedes pegar dos vectores aunque no tengan la misma longitud. La longitud final será la del vector más largo y el más corto repetirá su patrón.
paste0(1:10, LETTERS[1:15])
"1A" "2B" "3C" "4D" "5E" "6F" "7G" "8H" "9I" "10J" "1K" "2L" "3M" "4N" "5O"
Argumento collapse
La función paste0
proporciona un argumento llamado collapse
que permite separar los resultados al concatenar un vector. Por ejemplo, si quieres separar los resultados con una coma, deberás establecer collapse = ", "
.
paste0(1:10, "!", collapse = ", ")
"1!, 2!, 3!, 4!, 5!, 6!, 7!, 8!, 9!, 10!"
La función paste
El comando paste
se comporta de la misma manera que paste0
, pero añadirá un espacio por defecto al concatenar textos que puede ser sobrescrito con otra cadena de texto haciendo uso del argumento sep
. Considera que quieres concatenar la letra A con la letra B, el resultado será el siguiente:
paste("A", "B")
"A B"
Separador personalizado
Sin embargo, también puedes personalizar el separador con cualquier otro texto. En el siguiente ejemplo añadimos un signo más ("+"
) como separador. Esto puede ser útil para crear fórmulas para modelos de regresión lineal.
paste("A", "B", sep = "+")
"A+B"
Nueva línea
La función paste
también proporciona el argumento collapse
que se comporta de la misma manera que con paste0
. En el siguiente ejemplo establecemos collapse = "\n"
, de modo que si la cadena de texto se utiliza como título o texto de un gráfico, cada elemento unido estará en una nueva línea.
paste(c("x =", "y =", "z ="), 3:5, collapse = "\n")
"x = 3\ny = 4\nz = 5"
paste0(..., collapse)
es equivalente a paste(..., sep = "", collapse)
, pero paste0
es ligeramente más eficiente.
Si necesitas eliminar las comillas de la salida de paste0
puedes utilizar la función noquote
.