如何在RStudio中批量导入GitHub上的CoAID数据集?
批量下载并导入CoAID数据集到RStudio
前置准备
确保已安装readr和purrr包,若未安装,先执行:
if (!require("readr")) install.packages("readr") if (!require("purrr")) install.packages("purrr") library(readr) library(purrr)
1. 自动下载并解压数据集
这段代码会从GitHub下载压缩包,解压到你指定的目录:
# 自定义解压后的存储目录(替换为你想要的路径) target_dir <- "C:/Clive/Documents/R/CoAID" # 下载压缩包到临时文件 zip_url <- "https://github.com/cuilimeng/CoAID/archive/refs/heads/master.zip" temp_zip <- tempfile(fileext = ".zip") download.file(zip_url, temp_zip, mode = "wb") # 解压文件 unzip(temp_zip, exdir = target_dir)
2. 批量读取所有CSV文件
递归遍历所有子文件夹,一次性读取所有CSV到一个命名列表中(列表名就是文件名,方便调用):
# 获取所有CSV文件的完整路径 csv_paths <- list.files( path = file.path(target_dir, "CoAID-master"), pattern = "\\.csv$", recursive = TRUE, full.names = TRUE ) # 批量读取CSV coaid_list <- map(csv_paths, read_csv) # 给列表元素命名(移除路径和后缀) names(coaid_list) <- basename(csv_paths) %>% tools::file_path_sans_ext() # 调用示例:直接通过文件名访问数据集 coaid_list$ClaimFakeCOVID_19 coaid_list$ClaimFakeCOVID_19_tweets
可选:合并同类型数据集
如果需要将结构相似的文件(比如所有带tweets的CSV)合并成一个数据框:
library(dplyr) # 筛选并合并所有tweets文件 all_tweets <- coaid_list[grepl("tweets", names(coaid_list))] %>% bind_rows(.id = "source_file") # 添加来源文件名,方便溯源
内容的提问来源于stack exchange,提问作者Mkululi Skosana
相关产品推荐
相关产品推荐

