利用R语言脚本实现批量合并Excel表格
在整理数据的时候遇到一个问题:假如有很多个excel表,分别存放了一部分数据,现在想要快速把这些表格的数据汇总到一起,如何用R语言快速完成呢?本文分享一个脚本,能够自动完成类似的工作。
输入文件与背景介绍
假如每个材料(样本)的ID编号是从N001开始依次递增,现在有很多excel表格,第一列是ID信息,之后的每一列代表一个变量(性状、表型),以下用两个表格(多个表格方法同理)举栗子:
![image-20230430214258355](https://img-blog.csdnimg.cn/img_convert/1143eb198fa789d9a08b730a3016f40b.png)
细心的朋友肯定发现了ID这一列不是连续的,而且有缺失,也就是说有些样品的数据是空缺的。在统计的时候,需要将空缺值设为NA,有数据的值按位置提取,最终想要如下样式的数据:
> df_out_660
ID type year name
1 N001 D 2015 小王 # 来自B表
2 N002 NA
3 N003 NA
4 N004 NA
5 N005 NA 大壮 # 来自A表
6 N006 NA
7 N007 NA
8 N008 F 2017 小张
9 N009 NA
解决思路与逻辑关系
R语言tidyverse、xlsx包读入样品ID序列信息,用于后续生成结果文件迭代读取每个子文件,然后进行左连接对左连接后的数据判断回原有位置看是否为空若原有位置为空,则替换为新值保存最终结果
操作步骤
载入R包和数据
library(xlsx)
library(tidyverse)
# 以下示例仅用两个表格
df_info |