从R中的str_locate_all中的多个位置提取“末端”位置?

问题描述 投票:0回答:2

如果在这样的字符串向量中找到子字符串,则>]

library(stringr)
library(dplyr)

x <- c("ldksfABCskdlfj",
       "kABCz",
       "skdlfjlsjfABCksdfpjfkj")

x %>% str_locate_all("ABC")

我们得到

[[1]]
     start end
[1,]     6   8

[[2]]
     start end
[1,]     2   4

[[3]]
     start end
[1,]    11  13

如何提取end

位置? (即8、4、13)

到目前为止我尝试过的
x %>% str_locate_all("ABC") %>% sapply(function(x) { .[1,2] })
# Error in .[1, 2] : incorrect number of dimensions

[如果我们在字符串向量中找到子字符串,例如library(stringr)library(dplyr)x%str_locate_all(“ ABC”)...

r lapply sapply
2个回答
2
投票

几乎在那里。这是一种方法:


1
投票

如果如示例中所示,每个字符串中只有一个匹配项,则可以使用str_locate来代替,因为您可以直接从返回的矩阵中获得子集,所以可以避免使用任何循环来提取"end"列。

© www.soinside.com 2019 - 2024. All rights reserved.