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

R新手求助:合并12个同列名月度数据表及批量读取CSV方法

解决方法

批量读取CSV文件

你现在逐个读取文件的方式太繁琐,用以下方法可以一次性读取所有目标CSV:

首先加载tidyverse包(包含read_csv和批量处理工具):

library(tidyverse)

然后获取所有CSV文件的路径(假设文件都在当前工作目录):

# 匹配所有包含divvy-tripdata的CSV文件,适配你文件名的格式
csv_files <- list.files(pattern = "divvy.*tripdata\\.csv$", full.names = TRUE)

接着批量读取所有文件,得到一个由数据框组成的列表:

trip_data_list <- map(csv_files, read_csv)

合并月度数据为年度数据

因为你的所有表格列名一致,需要的是行堆叠(不是join类的列匹配),用bind_rows()函数直接合并列表里的所有数据框,会完整保留所有列:

annual_trip_data <- bind_rows(trip_data_list)

额外优化:保留月份来源

如果需要知道每一行属于哪个月度,可以在读取时新增一列标记来源:

trip_data_list <- map(csv_files, function(file) {
  # 从文件名提取6位数字的日期(比如202111)作为月份标识
  month_tag <- str_extract(file, "\\d{6}")
  read_csv(file) %>% mutate(month = month_tag)
})

合并后annual_trip_data会多一列month,方便后续按月份分析。

不用tidyverse的替代方案

如果不想用tidyverse,用base R也能实现:

# 批量读取
csv_files <- list.files(pattern = "divvy.*tripdata\\.csv$", full.names = TRUE)
trip_data_list <- lapply(csv_files, read.csv) # 注意这里是read.csv不是read_csv

# 合并
annual_trip_data <- do.call(rbind, trip_data_list)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:56:29