gpt4 book ai didi

r - 如何使用 grep 使用 R 中的第二个字符向量列表在数据帧列表中搜索模式匹配

转载 作者:行者123 更新时间:2023-12-04 17:08:45 26 4
gpt4 key购买 nike

我在 R 中有两个列表。一个是数据框列表,其中的行包含字符串(列表 1)。另一个是字符列表(相同长度)(列表 2)。我想以并行方式浏览列表,从列表 2 中获取字符串并搜索它以获取其在列表 1 中相应元素的数据框中的位置(使用 grep)。这是一个玩具示例我的列表是什么样的:

List1 <- list(data.frame(a = c("other","other","dog")), 
data.frame(a = c("cat","other","other")),
data.frame(a = c("other","other","bird")))

List2 <- list("a" = c("dog|xxx|xxx"),
"a" = c("cat|xxx|xxx"),
"a" = c("bird|xxx|xxx"))

我想获得的输出是模式匹配列表 1 中每个数据框中的位置列表,即在本例中,位置为 3、1 和 3。因此列表为:

[[1]]
[1] 3

[[2]]
[1] 1

[[3]]
[1] 3

我似乎不知道该怎么做。

我试过 lapply:

    NewList1 <- lapply(1:length(List1), 
function(x) grep(List2[[x]]))

但这行不通。我也试过 purrr:map2:

NewList2<-map2(List2, List1, grep(List2$A, List1))

这也行不通。如果有人就如何解决此问题提出任何建议,我将不胜感激。非常感谢任何愿意介入的人!

最佳答案

试试 Map + unlist

> Map(grep, List2, unlist(List1, recursive = FALSE))
$a
[1] 3

$a
[1] 1

$a
[1] 3

关于r - 如何使用 grep 使用 R 中的第二个字符向量列表在数据帧列表中搜索模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69941919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com