R语言怎么批量读取某路径下文件内容
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天小编给大家分享一下R语言怎么批量读取某路径下文件内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2026年11月03日R语言怎么批量读取某路径下文件内容
今天小编给大家分享一下R语言怎么批量读取某路径下文件内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
R刚入门的时候,能够正确读取单个文件就觉得小有成就,随着时间的积累,单一文件地读取已经不能满足需求了,此时,批量地做就是解放双手地过程。
使用for循环把下载地TCGA数据读入R语言并转换成数据框
使用三个for循环来完成,这是第一个for循环。
1. 把所有数据读入在一个文件夹中
dir.create("data_in_one") #创建目标文件夹,也可右键创建dir("rawdata/") #查看原路径的内容for (dirname in dir("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 (i in 1: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 (i in 1: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语言怎么批量读取某路径下文件内容"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
文件
路径
循环
内容
名称
数据
文件夹
知识
篇文章
语言
一致
函数
单个
容器
就是
模式
目的
顺序
不同
很大
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北京互联网科技公司
广州互联网络科技有限公司
互联网金融科技平台
互联网科技缩写
互联网 新科技
互联网高科技股票
科技类的互联网平台
滨湖区互联网智能科技产品供应
随着互联网科技发展
南山科技园互联网公司有哪些
智腾互联网科技有限公司
玉溪互联网科技怎么选
青海科技产业互联网发展
乌鲁木齐新华智原互联网科技学校
上海京穆互联网科技有限公司
风投北京互联网科技
萌小萌互联网科技河南有限公司
银川新华互联网科技学校是国营吗
山东蛋芒互联网科技有限公司
互联网科技快速发展优美句子
手磨咖啡
喔噻互联网科技有限公司
工业互联网科技新基建
合肥互联网科技公司
互联网科技论文
重庆科技学院互联网
互联网科技扶贫时间
广州互联网高科技取餐柜
易企秀互联网科技是做什么的
小牛互联网科技有限公司地址