相关疑难解决方法(0)

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

说有一个向量x:

x <- c("a", " ", "b")
Run Code Online (Sandbox Code Playgroud)

我想快速把它变成单个字符串"a b".有没有办法在没有循环的情况下做到这一点?我知道循环我能做到这一点:

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

> y
[1] "a b"
Run Code Online (Sandbox Code Playgroud)

但是我需要在很多次迭代中做到这一点,并且必须循环遍历这个并且每次用新的替换原始将变得非常耗时.我总是希望能够做到这样的事情:

x <- paste(x)
Run Code Online (Sandbox Code Playgroud)

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

r paste memory-efficient

38
推荐指数
2
解决办法
4万
查看次数

在R中粘贴/折叠

我很困惑粘贴,并认为这只是简单的连接.

whales <- c("C","D","C","D","D")

quails <- c("D","D","D","D","D")

results <-paste(whales, quails, collapse = '')
Run Code Online (Sandbox Code Playgroud)

为什么这将返回"C DD DC DD DD D"而不是CD DD CD DD DD?

而且,为什么会这样

results <-paste(whales[1], quails[1], collapse = '')
Run Code Online (Sandbox Code Playgroud)

返回

"C D"?

有空间吗?

感谢:D

编辑

好的,我明白了

results <-paste(whales, quails, collapse = NULL, sep='')
Run Code Online (Sandbox Code Playgroud)

会得到我想要的,但解释为什么以前的代码不起作用?还要感谢回答者.

r concatenation paste

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

paste ×2

r ×2

concatenation ×1

memory-efficient ×1