作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书,《R语言数据高效处理指南》(黄天元)【简介_书评_在线阅读】 - 当当图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
以前有多个csv要合并成一个(文件所有的列一般都是一致的),把文件路径设置到那里,然后写一个循环一个一个读,然后每个循环后面就使用rbind/bind_rows合在一起。比如:
library(tidyverse)
# 假设已经在csv文件所在路径
dir() %>% str_subset(".csv$") -> fn
all = tibble()
for(i in fn){
read_csv(i) %>%
bind_rows(all) -> all
}
为了充分利用计算机的所有性能,让读取更加迅速,我在多次试错下,终于写下这么一段代码:
library(pacman)
p_load(doParallel,data.table,dplyr,stringr,fst)
# 识别所在文件路径下所有的csv文件名称
dir() %>% str_subset(".csv$") -> fn
# 并行计算环境设置
(cl &