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

如何在R中合并12个同结构表格并保留指定8列?

R实现多大型表格合并并筛选指定列的步骤

前提说明

你已经完成了第一个表格的筛选,接下来针对剩余11个表格,用批量处理+合并的方式,既能避免重复写代码,也适配百万级数据的内存需求。


步骤1:整理待处理的表格列表

先把所有需要处理的表格(包括已筛选好的第一个)统一管理,分两种场景:

场景A:表格已加载到R环境中

如果剩余11个表格是类似trip_17_q2、trip_17_q3...trip_17_q12这样命名的对象,先把它们的名字存成向量:

# 生成剩余11个表格的名称向量
table_names <- paste0("trip_17_q", 2:12)
# 把已筛选好的第一个表格也加入列表
all_tables <- c(list(trip_17_filt), lapply(table_names, get))

场景B:表格是本地文件(如CSV/Excel)

如果表格存在本地,直接批量读取并筛选:

# 安装并加载必要包(未安装则取消注释第一行)
# install.packages(c("dplyr", "readr"))
library(dplyr)
library(readr)

# 获取目标文件夹下所有表格文件的路径(假设是CSV,其他格式替换read_*函数)
file_paths <- list.files(path = "你的表格文件夹路径", pattern = "\\.csv$", full.names = TRUE)

# 批量读取每个文件并筛选指定列
all_tables <- lapply(file_paths, function(file) {
  read_csv(file) %>% 
    select(trip_id, start_time, tripduration, from_station_id, to_station_id, usertype, gender, birthyear)
})

步骤2:合并所有表格

推荐两种合并方式,后者更适合百万级大数据:

用dplyr合并(代码简洁)

library(dplyr)
final_merged_table <- bind_rows(all_tables)

用data.table合并(大数据首选)

# 安装并加载data.table(未安装则取消注释第一行)
# install.packages("data.table")
library(data.table)
final_merged_table <- rbindlist(all_tables, fill = TRUE)
# 如需转成data.frame格式
final_merged_table <- as.data.frame(final_merged_table)

可选内存优化建议

针对百万级数据,还能进一步降低内存占用:

  • 读取文件时用vroom::vroom替代read_csv,速度更快且内存友好
  • 合并前把类别有限的字符列转成因子:
all_tables <- lapply(all_tables, function(df) {
  df %>% 
    mutate(across(c(usertype, gender), as.factor))
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:53:23