You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中如何使用grep在数据框列表中匹配对应字符列表的模式并返回位置

可行解决方法

原有代码问题说明

  • 第一种lapply写法缺少grep的第二个参数,即需要搜索的目标向量(List1对应位置数据框的a列)
  • 第二种purrr::map2写法没有正确定义传入函数的参数,且错误调用了List2$A,无需额外提取列表层级,直接取传入的对应元素即可

1 基础R实现

NewList1 <- lapply(seq_along(List1), function(x) {
  grep(pattern = List2[[x]], x = List1[[x]]$a)
})

2 purrr实现(更简洁)

library(purrr)
# 写法1:显式定义参数
NewList2 <- map2(List2, List1, function(pattern, df) {
  grep(pattern = pattern, x = df$a)
})

# 写法2:公式简写
NewList2 <- map2(List2, List1, ~grep(.x, .y$a))

以上两种写法运行后得到的结果都和你给出的期望输出完全一致。


内容的提问来源于stack exchange,提问作者Emily O'Connor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:24:03