R语言怎么批量读取某路径下文件内容
R语言怎么批量读取某路径下文件内容
今天小编给大家分享一下R语言怎么批量读取某路径下文件内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
R刚入门的时候,能够正确读取单个文件就觉得小有成就,随着时间的积累,单一文件地读取已经不能满足需求了,此时,批量地做就是解放双手地过程。
使用for循环把下载地TCGA数据读入R语言并转换成数据框
使用三个for循环来完成,这是第一个for循环。
1. 把所有数据读入在一个文件夹中
dir.create("data_in_one")#创建目标文件夹,也可右键创建dir("rawdata/")#查看原路径的内容for(dirnameindir("rawdata/")){##1.要查看的单个文件夹的绝对路径mydir<-paste0(getwd(),"/rawdata/",dirname)##2.找到对应文件夹中的文件并提取名称,pattern表示模式,可以是正则表达式file<-list.files(mydir,pattern="*.counts")##3.当前文件的绝对路径是myfile<-paste0(mydir,"/",file)##4.复制这个文件到目的文件夹file.copy(myfile,"data_in_one")}
2. 寻找TCGA ID并让文件名称和TCGA ID保持一致。
第二个for循环。文件名称和TCGA ID的对应关系,藏在了metadata中。
metadata<-jsonlite::fromJSON("data/metadata.cart.2021-05-28.json")metadata_id<-metadata[,c("file_name","associated_entities")]##1.准备容器,已经存在,我们把新数据添加在第三列metadata_id##2.循环操作for(iin1:nrow(metadata_id)){print(i)metadata_id[i,3]<-metadata_id$associated_entities[i][[1]]$entity_submitter_id}##重新命名colnames(metadata_id)[3]<-"TCGA_id"
行排序,为了把文件名称和TCGA_id对应起来。读入的顺序和复制到新路径的顺序不一致,这一步的目的是让其保持一致。
rownames(metadata_id)<-metadata_id[,1]metadata_id<-metadata_id[files,]
3. 输入文件名并提取文件的第二列(counts列)
#install.packages("data.table")#构建函数myfread<-function(files){data.table::fread(paste0("data_in_one/",files))$V2}##测试文件test<-myfread(files[1])
4.1 使用for循环来批量读入并整合到一个数据框。
##1.创建容器gene_id<-data.table::fread(paste0("data_in_one/",files[1]))$V1expr_df<-data.frame(gene_id=gene_id)##2.按照列读入for(iin1:length(files)){print(i)expr_df[,i+1]=myfread(files[i])}##增加列名colnames(expr_df)<-c("gene_id",metadata_id$TCGA_id)###意外发现tail(expr_df$gene_id,10)###去掉最后5行(nrow(expr_df)-5)expr_df<-expr_df[1:(nrow(expr_df)-5),]save(expr_df,file="output/BRCA_RNASEQ_exprdf.Rdata")
4.2 使用lapply + function 模式
1.函数
myfread<-function(files){data.table::fread(paste0("data_in_one/",files))$V2}###2.lapplydd=lapply(files,myfread)###3.do.callexpr_df=as.data.frame(do.call(cbind,dd))###4.添加名称colnames(expr_df)=metadata_id$TCGA_idrownames(expr_df)=data.table::fread(paste0("data_in_one/",files[1]))$V1
以上就是“R语言怎么批量读取某路径下文件内容”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注恰卡编程网行业资讯频道。
推荐阅读
-
R语言标签平滑是什么
R语言标签平滑是什么这篇文章主要介绍“R语言标签平滑是什么”,在日...
-
R语言怎么安装芯片原始数据标准化的包
R语言怎么安装芯片原始数据标准化的包这篇“R语言怎么安装芯片原始数...
-
TPM,FPKM(R语言怎么计算转录组中Count)
R语言怎么计算转录组中Count,TPM,FPKM本文小编为大家...
-
r语言如何绘制蛋白质组和转录组相关性图
r语言如何绘制蛋白质组和转录组相关性图这篇“r语言如何绘制蛋白质组...
-
怎么用R语言的limma方法进行芯片数据差异表达分析
怎么用R语言的limma方法进行芯片数据差异表达分析这篇文章主要介...
-
r语言中如何使用reshape2包将宽型数据转换成长型数据
r语言中如何使用reshape2包将宽型数据转换成长型数据这篇文章...
-
怎么用R语言的rgb函数获取颜色
怎么用R语言的rgb函数获取颜色今天小编给大家分享一下怎么用R语言...
-
怎么使用R语言筛选基因
怎么使用R语言筛选基因这篇文章给大家分享的是有关怎么使用R语言筛选...
-
在R语言中如何利用split划分数据
在R语言中如何利用split划分数据这篇文章给大家分享的是有关在R...
-
怎么用R包STRINGdb来进行蛋白互作网络分析
怎么用R包STRINGdb来进行蛋白互作网络分析这篇文章给大家分享...