deepesh - 1 year ago 240
R Question

# Difference between paste() and paste0()

Being new to R, can someone please explain the difference between paste() and paste0(), what I had understood from some post is that

``````paste0("a", "b") === paste("a", "b", sep="")
``````

Even I tried something like this

``````a <- c("a","b","c")
b <- c("y","w","q")
paste(a,b,sep = "_")
**output**
"a_y" "b_w" "c_q"
``````

## using paste0()

``````a <- c("a","b","c")
b <- c("y","w","q")
paste0(a,b,sep = "_")
**output**
"ay_" "bw_" "cq_"
``````

Is it just that paste() uses separator between elements and paste0() uses separator after the elements?

As explained here

`paste` has 3 arguments.

`paste (..., sep = " ", collapse = NULL)` The `...` is the stuff you want to paste together and sep and collapse are the guys to get it done. There are three basic things I paste together:

• A bunch of individual character strings.
• 2 or more strings pasted element for element.
• One string smushed together.

Here's an example of each, though not with the correct arguments

`paste("A", 1, "%")` #A bunch of individual character strings.

`paste(1:4, letters[1:4])` #2 or more strings pasted element for element.

`paste(1:10)` #One string smushed together. Here's the sep/collapse rule for each:

• A bunch of individual character strings – You want sep
• 2 or more strings pasted element for element. – You want sep
• One string smushed together.- Smushin requires collapse

`paste0` is short for: `paste(x, sep="")` So it allows us to be lazier and more efficient.

`paste0("a", "b") == paste("a", "b", sep="")` ## 1 TRUE

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download