Skip to content

Paste() vs paste0() in R

Dhiraj edited this page Jan 9, 2019 · 1 revision

Probably, function paste is one of the most used function in R. The objective of this function is concatenate a series of strings.

First example

paste("file", "number", "32")

[1] "file number 32"

Second example

paste("file", "number", "32", sep = "_")

[1] "file_number_32" The arguments of the function are:

args(paste) function (..., sep = " ", collapse = NULL) … = The space to write the series of strings.

sep = The element which separates every term. It should be specified with character string format.

collapse = The element which separates every result. It should be specified with character string format and it is optional. i

We can see an example where both arguments works together:

Third example (5 strings created)

paste(rep("file", 5), rep("number", 5), seq(1,5,1), sep = "_")

[1] "file_number_1" "file_number_2" "file_number_3" "file_number 4" "file_number_5"

Fourth example (an unique string created)

paste(rep("file", 5), rep("number", 5), seq(1,5,1), sep = "_", collapse = ", ")

[1] "file_number_1, file_number_2, file_number_3, file_number_4, file_number_5" As we can see in fourth example, if we specify a value in argument collapse, we obtain an unique string instead of five as in the previous example

The difference between paste() and paste0() is that the argument sep by default is ” ” (paste) and “” (paste0).

Default value of sep with paste function

name_village <- paste("Ma", "con", "do") name_village [1] "Ma con do"

Value of sep: ""

name_village <- paste("Ma", "con", "do", sep = "") name_village [1] "Macondo"

Default value of sep with paste function

name_village <- paste0("Ma", "con", "do") name_village [1] "Macondo" In conclusion, paste0() is faster than paste() if our objective is concatenate strings without spaces because we don’t have to specify the argument sep.