R语言怎么批量读取某路径下文件内容
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,今天小编给大家分享一下R语言怎么批量读取某路径下文件内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
软件开发师职业发展前景
四川大学数据库试题
如何搭建免流服务器
奉贤区提供网络技术质量保证
网页下载软件开发
服务器两块网卡
雄霸武神手游连接服务器失败
nltk数据库安装
数据库db的中文含义是什么
什么时候用内存数据库redis
我的世界服务器禁红石
张家口软件开发
合肥视频点播软件开发费用
网络安全快车进入基层活动
将外网服务器端口映射到本地端口
简单说计算机网络技术
大连哪个培训软件开发学校好
零基础能找软件开发工作吗
支持ipv6的云服务器
八开纸网络安全手抄报教学
网络技术公司营业执照
地址数据类型数据库
tomcat数据库配置文件
数据库系统概论 答案
不能查数据库表中的某些字段
浙江融信网络技术
高斯数据库 信创
erp管理系统用服务器
web如何清除缓存数据库
gp数据库求年龄得函数