美文网首页
合并多个相似的xlsl文件

合并多个相似的xlsl文件

作者: 宗肃書 | 来源:发表于2022-10-14 12:32 被阅读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
    

    相关文章

      网友评论

          本文标题:合并多个相似的xlsl文件

          本文链接:https://www.haomeiwen.com/subject/qazqzrtx.html