【发布时间】:2020-02-20 06:12:28
【问题描述】:
我是 RI 的新手,有 1200 个基因表达文件,只有两列基因名称和基因表达值但是每个 1200 个样本的这些值 63 个值都在一个数据库中
我有一个索引文件,其中包含我想要提取的基因的 ID 和行号:
row . Gene . Id
132 . ESM1 . ENSG00000164283
689 . RASS . ENSG00000066697
... .... ...............
... .... ...............
以此类推,直到 63。基因表达文件只有两列,其中包含基因 ID 和基因表达值,共有 63000 行,如下所示:
ENSG00000164283 . 3234.345
ENSG00000066697 . 255.346
ENSG00000046895 . 4587.322
............... ........
............... ........
等等。我可以通过使用索引文件对基因表达文件进行子集化,将这些行提取到一个新变量中
index.table<-read.table("path to file")
index<-index.table[,1]
sample.1<-read.table("path to file")
S1<-sample.1[index,2]
sample.2<-read.table("path to file")
S2<-sample.2[index,2]
sample.3<-read.table("path to file")
S3<-sample.3[index,2]
会给我我需要的子集,然后我可以将列绑定到一个文件中,用于所有样本的所有基因表达值
gene.DB<-cbind(S1,S2,S3,S4.....S1200)
然而,这对于 1200 个单独的文件来说是非常不切实际的,我如何循环这个函数以在这个给定目录中的所有文件上运行?如果这是一个非常基本的问题,我深表歉意,但我似乎知道该怎么做,任何帮助将不胜感激。提前谢谢你。
安德烈斯
【问题讨论】:
-
类似
l <- list.files('my_folder/'); purrr::map_dfc(l, ~read.table(.)[index, 2])
标签: r