R - stringr每两个间隔数字添加换行符

时间:2018-02-10 17:33:47

标签: r stringr

给出

str1 <- "0 1 1 2 2 3 3 4 0 4"

我想:

str2 <- "0 1\n1 2\n2 3\n3 4\n0 4"

使用stringr执行此操作的方法是什么?

2 个答案:

答案 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"