给出
str1 <- "0 1 1 2 2 3 3 4 0 4"
我想:
str2 <- "0 1\n1 2\n2 3\n3 4\n0 4"
使用stringr执行此操作的方法是什么?
答案 0 :(得分:6)
我们可以使用gsub
捕获一个或多个数字,后跟一个空格,后跟数字作为一个组,后跟一个空格,然后替换为捕获的组的反向引用,后跟\n
gsub("(\\d+\\s\\d+)\\s", "\\1\n", str1)
#[1] "0 1\n1 2\n2 3\n3 4\n0 4"
答案 1 :(得分:1)
这个不是特别优雅,但它使用stringr
:
library(stringr)
str1 <- "0 1 1 2 2 3 3 4 0 4"
spaces <- str_locate_all(str1, " ")[[1]]
for (i in seq(2, nrow(spaces), by = 2)) str_sub(str1, spaces[i, , drop = FALSE]) <- "\n"
str1
## [1] "0 1\n1 2\n2 3\n3 4\n0 4"