合并多个相似的xlsl文件

2022-10-14  本文已影响0人  宗肃書

今天早上,师兄给了我9个表,每个表以及内容如下

image.png image.png
1. 要9个数据取交集
2. Description这一列,有简单的方法把GN=这个数据提取为单独的一列吗
  1. 首先解决第一个问题:多个数据取交集
#进入9个文件的目录下
#打开R
library("readxl")
filename=dir(pattern='LR_[0-9]{1}_[0-9]{1,2}_20221012.xlsx')    #根据不同的文件名批量读入文件名字
data=read_xlsx(filename[1])  #把第一个文件读入到data数据集中(目的是为了merge合并的时候,第一个data数据集中存在数据,使结果不为空)
data1=data[,c(3,4,11,15,18)]      #提取指定列
for(k in 2:length(filename)){     #从第二个数据开始读取,因为第一个我们已经读入到data中
    tmp = read_xlsx(filename[k])    #依次读入数据,并暂存为tmp,相当于每一个文件数据的中转站
    tmp1=tmp[,c(3,4,11,15,18)]
   data1<-merge(data1,tmp1,by="Accession")   #依次把中转过来的数据与data1取交集并生成交集的data1数据集(Accession为每一个文件中相同的列名)
}
write.table(data1,file="allfile.txt",sep="\t",row.names = F)
  1. GN=这个数据提取为单独的一列并加在文件后面
cat allfile.txt|cut -f1-5,7-9,11-13,15-17,19-21,23-25,27,29,31,33,35- |grep  -E -o  "Description|GN=[A-Za-z0-9]{0,9}" >gene.tmp
paste allfile.txt gene.tmp >file9.txt
rm -f *.tmp allfile.txt
上一篇下一篇

猜你喜欢

热点阅读