打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

本文首发于“生信补给站”微信公众号

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

数据准备

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

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

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

数据处理

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

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

#查看当前路径下所有文件

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)  

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

【觉得不错,右下角点击点个“在看”,转发就是最好的支持和赞赏,谢谢!】

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R语言读取文件夹下多个文件并进行合并数据生成总数据文件
如何快速合并多个excel文件?包括.xls .csv格式
Excel按文件名制作目录,你复制粘贴花一小时,同事只要十秒搞定
Excel结合3行Bat代码,学会后,同事都夸你厉害!
excel表格怎么转换vcf通讯录格式
批量处理神技,你值得拥有!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服