r语言 - 如何将str_locate_all更改为包含pattern中所有位置的单个列表



我无法"解卷积";Str_locate_all输出,以便获得模式中涉及的所有索引(不仅仅是开始和结束)。

下面是我得到的str_locate_all()的输出类型:

[1]]
start end
[1,]     4   7
[[2]]
start end
[1,]     8  12
[2,]    30  33

和我想如何改变它:

[[1]]
[1]  4 5 6 7
[[2]]
[1] 8 9 10 11 12 30 31 32 33

提前感谢!

您可以遍历列表,然后遍历每一行以创建序列。

x <- list(matrix(c(4, 7), ncol = 2, dimnames = list(NULL, c("start", "end"))),
matrix(c(8, 30, 12, 33), ncol = 2, dimnames = list(NULL, c("start", "end"))))

这里以r为基数。

lapply(x,
function(y) unlist(apply(y, 1,
function(z) seq(z[1], z[2]), simplify = FALSE)))

给出期望的结果。

[[1]]
[1] 4 5 6 7
[[2]]
[1]  8  9 10 11 12 30 31 32 33

最新更新