R语言按指定流程结合list_files()、read_csv()、bind_rows()批量读入数据的实现方法
符合指定流程的R实现代码
全程无快捷批量合并操作,每一步严格匹配要求的执行逻辑:
# 首次运行可先安装依赖包:install.packages(c("fs", "readr", "dplyr")) # 1. 生成存储所有待读取文件完整名称的向量(使用fs包的list_files()) file_list_vec <- fs::list_files( path = "替换为你的待读取文件所在目录的路径", full.names = TRUE, # 确保返回完整文件路径 regexp = "\\.csv$" # 仅匹配目录下的csv文件,避免读入非目标文件 ) # 2. 初始化存储合并数据的tibble对象为NULL combined_data <- NULL # 3. 遍历文件名称向量的每一个条目执行循环 for (single_file in file_list_vec) { # 3.1 读取当前条目对应的csv文件,得到单文件tibble current_tibble <- readr::read_csv( file = single_file, show_col_types = FALSE # 关闭读入时的列类型提示,不影响核心逻辑 ) # 3.2 将本次读入的tibble与历史累积的tibble逐行绑定,更新存储对象 combined_data <- dplyr::bind_rows(combined_data, current_tibble) }
关键逻辑说明
bind_rows()对传入的NULL值有原生适配:第一次循环时因初始的combined_data为NULL,函数会直接返回当前读入的单文件tibble,无运行错误- 每完成一次文件读入就即时执行行绑定,不存在批量预读后再统一合并的操作
内容的提问来源于stack exchange,提问作者user15487873
相关产品推荐
相关产品推荐

