有没有办法在不使用循环的情况下将R中矢量的元素粘贴在一起?

时间:2011-07-14 19:27:05

标签: r paste memory-efficient

说有一个向量x:

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

我想快速将其变成单个字符串“a b”。有没有办法在没有循环的情况下做到这一点?我知道循环可以做到这一点:

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

> y
[1] "a b"

但是我需要在很多次迭代中执行此操作,并且必须循环使用这个并且每次用新的替换原始将变得非常耗时。我总是希望能够做到这样的事情:

x <- paste(x)

好像paste()可以巧妙地将矢量本身的元素分开,但我知道它不能。是否有其他功能,或更有创意的方式来使用paste(),这可以有效地实现这一目标?

2 个答案:

答案 0 :(得分:76)

您只需要使用collapse参数:

paste(x,collapse="")

答案 1 :(得分:1)

只需添加一种tidyverse方式即可提供使用paste()的替代方法:

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

reprex package(v0.3.0)于2020-10-31创建