R|批量循环处理同一格式文件-csv,txt,excel
时间:2019-09-19
本文章向大家介绍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示例
设定工作目录,将需要处理的数据文件放到工作目录下
#查看当前路径下所有文件
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)
低时间投入成本,高效率回报
原文地址:https://www.cnblogs.com/Mao1518202/p/11547233.html
- Windows Server AppFabric Caching
- zepto 基础知识(2)
- DeepMind回顾2017年:除了战胜柯洁还有哪些大事
- [认证授权] 1.OAuth2授权
- 机器学习(四)——梯度下降算法解释以及求解
- 在Windows上运行单节点的Cassandra
- Mono技术规格
- 如何站在使用者的角度来设计SDK-微信公众号开发SDK(消息处理)设计之抛砖引玉
- 机器学习(三)——k-近邻算法基础
- 利用Windows性能计数器(PerformanceCounter)监控
- zepto 基础知识(1)
- [C#7] 1.Tuples(元组)
- 防止“rm-rf/”误删除的5种方法
- 基于DotNetOpenAuth实现OpenID 服务提供者
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 过滤器 & 监听器的学习
- 会话技术 & JSP 的学习
- 2万字,实战 Docker 部署:完整的前后端,主从热备高可用服务!!
- http & request & response的学习
- JavaScript 错误处理大全【建议收藏】
- Java8 用 Stream 快速实现List转Map 、分组、过滤等操作
- swoole框架异常处理
- 使用composer本地开发项目
- GDAL数据集写入空间坐标参考
- html & CSS & JavaScript的学习
- 打卡群刷题总结0824——电话号码的字母组合
- 打卡群刷题总结0825——括号生成
- Ajax与Json的学习
- pytest文档48-切换环境(pytest-base-url)
- 打卡群刷题总结0826——组合总和