我想知道 R 中是否有一种方法可以无循环地连接向量的元素。例如,像这样连接每 3 个元素:
之前:
"1 2 3 4 5 6 7 8 9"
之后:
"1 2 3" "4 5 6" "7 8 9"
谢谢!
最佳答案
我们可以使用环视正则表达式分割字符串
trimws(strsplit(str1, '(?<=([^ ]\\s){3})', perl=TRUE)[[1]])
#[1] "1 2 3" "4 5 6" "7 8 9"
如果我们有一个数值向量,请为每 3 个连续元素创建一个分组变量 gl
并使用 group by 函数之一 ( tapply
) 到 paste
元素组合在一起。
v1 <- 1:9
tapply(v1, as.numeric(gl(length(v1), 3, length(v1))),
FUN= paste, collapse=' ')
数据
str1 <- "1 2 3 4 5 6 7 8 9"
关于R 连接向量的每隔几个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33937890/