Concatenar textos en R con paste y paste0

Manipulación de datos con R Manipulación de texto
Concatenar textos en R con las funciones 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.