通过grep匹配后在列表中合并向量

通过grep匹配后在列表中合并向量,r,vector,R,Vector,我有一个1000个更小的向量的列表/向量x,每个向量1行。这些子向量包括字符串和数字。其中一行包含嵌入字符串中的id:XXXX变量。如果我只考虑前两个向量,即x[[I]]和x[[I+1]],我可以使用R中的以下代码组合列表中的连续向量 首先_vec不知道你的数据 您可以1提取字符串,2查找类似这样的连续ID 图书馆长 下面是我对您的问题的理解和解决方案:您有一个单字符串向量列表,并希望连接与模式匹配的子字符串。如果这是正确的,那么这应该是可行的: 数据: 根据OP的最新数据: paste0(un

我有一个1000个更小的向量的列表/向量x,每个向量1行。这些子向量包括字符串和数字。其中一行包含嵌入字符串中的id:XXXX变量。如果我只考虑前两个向量,即x[[I]]和x[[I+1]],我可以使用R中的以下代码组合列表中的连续向量


首先_vec不知道你的数据

您可以1提取字符串,2查找类似这样的连续ID

图书馆长
下面是我对您的问题的理解和解决方案:您有一个单字符串向量列表,并希望连接与模式匹配的子字符串。如果这是正确的,那么这应该是可行的:

数据:

根据OP的最新数据:

paste0(unlist(stringr::str_extract_all(x, "Page \\d+")), " ", unlist(stringr::str_extract_all(x, "id: [0-9]+")), collapse = ", ")
[1] "Page 1 id: 1234, Page 2 id: 1235, Page 3 id: 1235"

要标记语言,最好重新格式化代码,使其更具可读性,即在3个反标记组之间正确缩进。@下划线\u d ThanksAlso,您可能需要添加一些数据以使其可复制。没有玩具数据的代码有什么用?请考虑使用DPUX[1:3]或类似的精彩,谢谢。我是否可以编辑上面的paste0命令,使id变量周围的剩余字符串保持不变?这意味着在我的示例中,x[[1]]将是第1页,x[[i+1]]将是第2页和第3页的组合。你的数据真的是结构化的吗?为了让我回答这个问题,你必须发布你的数据片段;请尝试使用dputhead抱歉,我无法通过dput共享,因为我有保密问题。然后只需编一些类似于您的数据!编辑了答案。这是你需要的吗?谢谢。这是完美的提取匹配IDSIF你找到答案固定你的问题,请考虑接受它作为答案!谢谢我们有几个有用的回答,但本身没有确切的解决方案
a <- "id: 20"
b <- "something id: 333some more"
c <- "some other stuff without id"
d <- "some stuff id: 346999 and more stuff"
x <- list(a,b,c,d)

unlist(stringr::str_extract(x, "id: [0-9]+"))
[1] "id: 20"     "id: 333"    NA           "id: 346999"
paste0(unlist(stringr::str_extract(x, "id: [0-9]+")), collapse = ", ")
"id: 20, id: 333, NA, id: 346999"
paste0(unlist(stringr::str_extract_all(x, "Page \\d+")), " ", unlist(stringr::str_extract_all(x, "id: [0-9]+")), collapse = ", ")
[1] "Page 1 id: 1234, Page 2 id: 1235, Page 3 id: 1235"