首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对文件夹中的所有文件应用相同的转换

如何对文件夹中的所有文件应用相同的转换
EN

Stack Overflow用户
提问于 2019-10-24 07:43:43
回答 1查看 36关注 0票数 1

我是R的新手,我有1200个基因表达文件,只有两列基因名称和基因表达值。我希望过滤出63个这些基因,并生成一个仅包含这些基因的基因表达值的基因文件,这样最终就可以在单个数据库中为每个1200个样本生成63个值

我有一个索引文件,里面有我想要提取的基因的I和行号:

代码语言:javascript
复制
row . Gene . Id 
132 . ESM1 . ENSG00000164283
689 . RASS . ENSG00000066697
...   ....   ...............
...   ....   ...............

以此类推,降至63。基因表达式文件只有两列,包含基因Id和基因表达值,共63000行,如下所示:

代码语言:javascript
复制
ENSG00000164283 . 3234.345
ENSG00000066697 . 255.346
ENSG00000046895 . 4587.322
...............   ........
...............   ........

诸若此类。我可以通过使用索引文件子化基因表达式文件,将这些行提取到一个新的变量中

代码语言:javascript
复制
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]

将为我提供所需的子集,然后可以将所有样本的所有基因表达值的列绑定到单个文件中

代码语言:javascript
复制
gene.DB<-cbind(S1,S2,S3,S4.....S1200) 

然而,这对于1200个单独的文件来说是非常不切实际的,我如何循环这个函数来在这个给定目录中的所有文件上运行?我很抱歉,如果这是一个非常基本的问题,但我只是可以似乎知道如何做,任何帮助将非常感谢。提前谢谢你。

安德烈斯

EN

回答 1

Stack Overflow用户

发布于 2019-10-24 09:28:15

考虑基数R的sapply在构建命名文件列表之后构建基因表达值矩阵(假设所有1,200个文件都驻留在同一目录中):

代码语言:javascript
复制
index_table <- read.table("path to file")
index <- index_table[,1]

gene_files <- list.files("path to all gene file")
names(gene_files) <- paste0("S", seq_along(gene_files))

samples <- sapply(gene_files, function(f) read.table(f)[index,2])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58532302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档