R语言怎么批量读取某路径下文件内容
发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,今天小编给大家分享一下R语言怎么批量读取某路径下文件内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2025年11月14日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安全错误
数据库的锁怎样保障安全
河北办公系统软件开发多少钱
高职升学网络技术试题
软件开发招聘公司
app游戏服务器
乌兰察布市润雨网络技术科技
游戏的台澳服务器英语
地域名和网页服务器对应
祖尔金tbc数据库
做vb软件开发的上市公司
阿里云服务器只有1m宽带怎么办
51单片机的软件开发流程
放心的app软件开发设计
数据库er实现实体联系图是什么
修改数据库一个字段的值
自动售货机数据库详细设计
云服务器防火墙转发配置
软件开发工资分录
c# tcp 读不到数据库
辽宁网络安全检测
标准机架服务器如何挑选
网络安全前言
加强信息网络安全管理工作
佛山有奖征集网络安全融创产品
数据库不同的还原.
商用服务器
长宁区提供网络技术有哪些
测试人员数据库笔试题及答案
广播电视网络安全管理
网易版黎明杀机连接不到服务器
中泰跨境电子商务数据库技术