60

假设有一个向量 x:

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

我想快速把它变成一个字符串“ab”。有没有办法在没有循环的情况下做到这一点?我知道通过循环我可以做到这一点:

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

> y
[1] "a b"

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

x <- paste(x)

好像 paste() 可以巧妙地划分向量本身的元素,但我知道它不能。有没有其他函数,或者更有创意的方式来使用 paste(),可以有效地完成这个任务?

4

2 回答 2

115

你只需要使用collapse参数:

paste(x,collapse="")
于 2011-07-14T19:32:32.523 回答
4

只需添加一种tidyverse方法来提供替代 using paste()

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

reprex 包(v0.3.0)于 2020 年 10 月 31 日创建

于 2020-11-01T03:07:56.787 回答