R|批量循环处理同一格式文件-csv,txt,excel

简介: R|批量循环处理同一格式文件-csv,txt,excel

本文首发于“生信补给站”公众号  https://mp.weixin.qq.com/s/8IfMrSr9xc8_1Y2_9Ne6hg


  在一个文件夹下有很多字段一致,格式统一的数据文件(csv,txt,excel),可以使用R快速的统一成一个文件方便后续分析和处理。

数据准备

   将需要处理的字段一致,格式统一的数据文件(csv,txt,excel),放到文件夹内,并将此文件夹设置为工作目录,下面分情况介绍如何批量读取并合并数据。

1)文件夹内只有一种格式的文件:csv,txt,excel;

2)文件夹内有多种格式的文件:csv,txt,excel以及其他的png,pdf等文件;

数据处理


1 仅有一种类型文件,此处以csv示例

设定工作目录,将需要处理的数据文件放到工作目录下

#查看当前路径下所有文件
#setwd(D:\\..\\data\\)
a = list.files()    
a
#命令构建路径变量dir(方便更改),也可以不构建,后面示例                               dir = paste("./",a,sep="")                
#读取dir长度,也就是文件夹下的文件个数
n = length(dir)                                      
#读入第一个文件内容
merge.data = read.csv(file = dir[1],header=T,sep=",")  
#循环从第二个文件开始读入所有文件,并组合到merge.data变量中
for (i in 2:n){
  new.data = read.csv(file = dir[i], header=T, sep=",")
  merge.data = rbind(merge.data,new.data)
}
#输出组合后的文件merge.csv到input文件
write.csv(merge.data,file = "./merge_all.csv",row.names=FALSE)


2 存在多种类型文件,仅读取csv格式文件

当工作目录下多种类型文件时,只读取其中一种

list.files()
#提出目录下的所有csv文件,后面介绍另一种方式
a = list.files(pattern = ".csv")                                    
#不构建路径变量,直接读入第一个文件内容
merge.data = read.csv(a[1],header=T,sep=",")  
#循环从第二个文件开始读入所有文件,并组合到merge.data变量中
for (i in 2:n){
  new.data = read.csv(a[i], header=T, sep=",")
  merge.data = rbind(merge.data,new.data)
}
#输出组合后的文件merge.csv到input文件
write.csv(merge.data,file = "./merge_only_csv.csv",row.names=FALSE)

注:因txt文件亦可以直接用R基本读入方式读取,更改read.table即可,此处不举例。


3 存在多种类型文件,仅读取excel格式文件

因R不能直接读取excel文件,需要加载R包,个人习惯利用readxl包读取。

#install.packages("readxl")
library(readxl)
#另一种方式提出目录下的所有excel文件
list <- list.files()
a <- grep('\\.xlsx', list, value = TRUE)
n = length(a)
merge.data = read_excel(a[1])  
#循环从第二个文件开始读入所有文件,并组合到merge.data变量中
for (i in 2:n){
  new.data = read_excel(a[i])
  merge.data = rbind(merge.data,new.data)
}
#输出组合后的文件merge.csv到input文件
write.csv(merge.data,file = "./merge_only_excel.csv",row.names=FALSE)

低时间投入成本,高效率回报🤭

相关文章
|
22天前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分到不同的工作表中。本文通过一个示例代码展示了如何生成一个包含总成绩表和三个班级表的Excel文件。代码首先创建了一个包含学生姓名、班级和各科成绩的数据框,然后按班级分组,将每个班级的数据分别写入不同的工作表。最后,生成的Excel文件将包含四个工作表,分别为总成绩表和三个班级的成绩表。
28 6
按条件将Excel文件拆分到不同的工作表
|
21天前
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
30 6
|
21天前
|
Python
按条件将Excel文件拆分到不同的工作表
使用Python的pandas库,可以轻松将Excel文件按条件拆分为多个工作表。本文通过一个具体示例,展示了如何根据学生班级将成绩数据拆分到不同的工作表中,并生成一个包含总成绩表和各班级成绩表的Excel文件。代码简洁明了,适合初学者学习和应用。
34 6
|
1月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
30 1
|
1月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
70 4
|
2月前
|
JavaScript 前端开发 数据处理
Vue导出el-table表格为Excel文件的两种方式
Vue导出el-table表格为Excel文件的两种方式
110 6
|
2月前
|
数据挖掘
Excel条件格式
【10月更文挑战第21天】Excel条件格式
78 2
|
2月前
|
数据可视化 数据挖掘
Excel条件格式高级应用
【10月更文挑战第20天】Excel条件格式高级应用
42 3
|
23天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
158 4