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

如何用R语言下载FAERS的ASCII文件并解压至工作目录?

使用R批量下载并解压FAERS ASCII文件最优方案

以下是高效实现批量下载FAERS所有ASCII压缩文件并解压到当前工作目录的R代码方案,核心采用网页爬取+批量处理思路,兼顾稳定性与简洁性:

步骤1:安装并加载依赖包

需要用到网页爬取、HTTP请求和批量操作的工具包:

# 首次运行需执行安装
install.packages(c("rvest", "httr", "purrr"))

# 加载所需包
library(rvest)
library(httr)
library(purrr)

步骤2:爬取所有ASCII压缩文件链接

从FAERS文件页面提取所有ASCII格式压缩包的下载链接:

# FAERS文件页面地址
faers_url <- "https://fis.fda.gov/extensions/FPD-QDE-FAERS/FPD-QDE-FAERS.html"

# 解析页面并筛选目标链接
page <- read_html(faers_url)
ascii_links <- page %>%
  html_elements("a") %>%
  html_attr("href") %>%
  # 匹配FAERS ASCII压缩包的命名规则
  grep(pattern = "ASCII.*\\.zip$", x = ., value = TRUE) %>%
  # 补全相对路径为完整URL
  url_absolute(faers_url)

步骤3:批量下载并解压文件

遍历所有链接,自动完成下载与解压,同时处理可能的异常情况:

# 定义单文件处理函数
download_unzip_faers <- function(link) {
  file_name <- basename(link)
  tryCatch({
    # 下载文件到当前目录
    GET(link, write_disk(file_name, overwrite = TRUE))
    message(paste("下载完成:", file_name))
    # 解压文件到当前目录
    unzip(file_name, exdir = getwd())
    message(paste("解压完成:", file_name))
  }, error = function(e) {
    message(paste("处理失败:", file_name, ",错误信息:", e$message))
  })
}

# 批量执行所有文件的下载解压
walk(ascii_links, download_unzip_faers)

关键说明

  • 工作目录确认:执行前可通过getwd()查看当前工作目录,如需切换路径用setwd("你的目标路径")
  • 重复下载控制:代码中overwrite = TRUE会覆盖已存在的同名文件,若需保留旧文件可改为FALSE
  • 网络异常处理:若遇到下载中断,重新运行walk代码块即可自动重试未成功的文件
  • 压缩包清理:如果不需要保留原始zip文件,可在解压步骤后添加file.remove(file_name)删除压缩包

内容的提问来源于stack exchange,提问作者Jenn0804

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:04:56