我想知道,R中是否有一种方法可以连接没有循环的vektor元素。例如,将每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"

如果我们有一个数值 vector ,则使用gl为每3个连续元素创建一个分组变量,并使用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"

07-24 09:51
查看更多