首页 > 解决方案 > R如何导入以相同模式命名的批量txt文件并从所有文件中提取具有相同名称的行

问题描述

我是个初学者……我有 36 个 txt 文件,如下面的屏幕截图所示 文件列表 。在每个文件中,我有 23154 行同名。但是,文件之间的列号和名称是不同的。我的目的是从每篇论文中提取几个特定的​​行并将它们合并到一个新的数据框中。列按行名分组。

其中一个文件如下所示: 在此处输入图像描述

因此,行名称是基因 ID,列名称实际上是对测量基因的细胞阶段进行注释。每个文件包含一个或两个阶段,每个阶段大约有 20 个重复。

例如,我想选择 Phf20 和 Kat8。在最终文件中,我希望每列代表每个阶段的平均计数,并按每个基因排序。下面附上我期望的样子:

在此处输入图像描述

任何人都可以帮忙吗?请...

非常感谢!

标签: rdata-cleaning

解决方案


这大致是我将如何处理这个问题(注意我无法测试这段代码,因为我没有你的数据):

  1. 创建文件列表:
    myfiles<-list.files(yourfilepath)
  1. 遍历此列表以读取 txt 文件并提取相关信息:
    myrows<-c(1,2,3) #1,2,3 are the rows of interest
    
    for(i in seq_along(myfiles)){
      
      #you can also use read.table, depends how are your files delimited:
      mydata<-read.delim(myfiles[i]) 
      
      #select rows:
      mydata<-mydata[myrows,] 
      
      if(i == 1){
        finaldata<-mydata
      }else{
        #combine data frames by colums:
        finaldata<-cbind(finaldata, mydata) 
      }
      
      rm(mydata)
      
    }


推荐阅读