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

是否存在R函数可对所有列执行相同筛选命令批量提取URL

解决方案

你可以通过批量迭代函数一次性完成250个对象的匹配提取,无需逐个手动编写grep语句,以下是R语言的实现方法:


如果你是将250个人名对应数据统一存储在Excel中

步骤1:导入Excel数据集

使用readxl包读取Excel文件,假设文件中存储待匹配文本的列名为content,存储人名的列名为person_name:

# 首次使用先安装依赖包
install.packages("readxl")
library(readxl)
# 导入数据到数据框
df <- read_excel("你的本地Excel文件路径.xlsx")

步骤2:批量提取匹配URL

两种常用实现方式任选其一即可:

  • 方式1:Base R原生sapply函数实现
# 逐行匹配所有带.gob.mx的URL,结果存入新列
df$matched_urls <- sapply(df$content, function(x) grep("\\.gob\\.mx", x, value = TRUE))

提示:正则表达式中的.需要转义为\\.,才能精准匹配点号,避免误匹配任意字符。

  • 方式2:purrr包map函数实现(更适合后续结构化处理)
# 首次使用先安装依赖包
install.packages("purrr")
library(purrr)
df$matched_urls <- map(df$content, ~grep("\\.gob\\.mx", .x, value = TRUE))

步骤3:结果导出

处理完成后可直接导出为Excel文件留存:

install.packages("writexl")
library(writexl)
write_xlsx(df, "URL匹配结果.xlsx")

如果需要将每个URL单独拆分为一行存储,可使用tidyr的unnest函数处理:

library(tidyr)
df_long <- unnest(df, matched_urls)

如果你目前是250个独立的人名向量(和你示例的Alejandro Díaz Domínguez向量形式一致)

可以先将所有向量存入命名列表后批量处理,无需逐个调用:

# 方式1:如果向量名有统一规律,直接批量提取
all_name_vecs <- mget(ls(pattern = "向量名共同前缀/后缀"))

# 方式2:无统一规律时手动构造列表
# all_name_vecs <- list(
#   `Alejandro Díaz Domínguez` = `Alejandro Díaz Domínguez`,
#   `第二个名字` = `第二个名字`,
#   # 剩余名字依次录入即可
# )

# 批量匹配所有URL
result_all <- lapply(all_name_vecs, function(x) grep("\\.gob\\.mx", x, value = TRUE))

内容的提问来源于stack exchange,提问作者Marcela Marroquín

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 13:54:06