Is there a way to paste together the elements of a vector in R without using a loop?

RPasteMemory Efficient

R Problem Overview


Say there's a vector x:

x <- c("a", " ", "b")

and I want to quickly turn this into a single string "a b". Is there a way to do this without a loop? I know with a loop I could do this:

y <- ""
for (i in 1:3){
    paste(y, x[i], sep = "")
}

> y
[1] "a b"

but I will need to do this over many, many iterations, and having to loop over this and replace the original with the new each time would become very time consuming. I always want to be able to do something like this:

x <- paste(x)

as if paste() could smartly divide up the elements of a vector itself, but I know it can't. Is there another function, or a more creative way to use paste(), which can accomplish this efficiently?

R Solutions


Solution 1 - R

You just need to use the collapse argument:

paste(x,collapse="")

Solution 2 - R

Just adding a tidyverse way to provide an alternative to using paste():

library(glue)
x <- c("a", " ", "b")
glue_collapse(x)
#> a b

Created on 2020-10-31 by the reprex package (v0.3.0)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMaxView Question on Stackoverflow
Solution 1 - RjoranView Answer on Stackoverflow
Solution 2 - RAshirwadView Answer on Stackoverflow