R 如何循环浏览文件夹并对这些文件夹中的文件应用函数

R 如何循环浏览文件夹并对这些文件夹中的文件应用函数,r,function,loops,R,Function,Loops,我有多个名称相似但不同的文件夹,每个文件夹包含名称相似但不同的csv文件 例如,我有三个名为“output”的文件夹,每个文件夹包含“image.csv”和“cells.csv” 如何循环遍历每个“输出”文件夹,然后读取文件夹中的每个csv文件并将函数应用于这些文件? 以下是我尝试过的: 首先,我列出了名为“output”的文件夹: dirs在函数中动态设置读取csv的路径 object_extraction<-function(x){ image<-read.csv(past

我有多个名称相似但不同的文件夹,每个文件夹包含名称相似但不同的csv文件

例如,我有三个名为“output”的文件夹,每个文件夹包含“image.csv”和“cells.csv”

如何循环遍历每个“输出”文件夹,然后读取文件夹中的每个csv文件并将函数应用于这些文件? 以下是我尝试过的:

首先,我列出了名为“output”的文件夹:


dirs在函数中动态设置读取csv的路径

object_extraction<-function(x){ 
  image<-read.csv(paste0(x, '/image.csv'), header=T, sep=",") 
  #header = T and sep = ',' is default in read.csv so this should 
  #work without specifying them as well.
  cells<-read.csv(paste0(x, '/cells.csv'))
  object<-dplyr::inner_join(cells,image,by="ImageNumber")
  return(object)
}

object\u extraction在函数中动态设置读取csv的路径

object_extraction<-function(x){ 
  image<-read.csv(paste0(x, '/image.csv'), header=T, sep=",") 
  #header = T and sep = ',' is default in read.csv so this should 
  #work without specifying them as well.
  cells<-read.csv(paste0(x, '/cells.csv'))
  object<-dplyr::inner_join(cells,image,by="ImageNumber")
  return(object)
}

object\u extraction我可以在您的代码中发现两个错误:

您需要在
dirs
变量中使用目录名,例如:

object_extraction<-function(x){ 
  image<-read.csv(file.path(x, "image.csv"), header=T, sep=",") 
  cells<-read.csv(file.path(x, "cells.csv"), header=T, sep=",")
  object<-dplyr::inner_join(cells,image,by="ImageNumber")
  return(object)
}

object\u extraction我可以在您的代码中发现两个错误:

您需要在
dirs
变量中使用目录名,例如:

object_extraction<-function(x){ 
  image<-read.csv(file.path(x, "image.csv"), header=T, sep=",") 
  cells<-read.csv(file.path(x, "cells.csv"), header=T, sep=",")
  object<-dplyr::inner_join(cells,image,by="ImageNumber")
  return(object)
}

object\u extraction您收到的错误消息是什么?文件中有错误(文件,“rt”):无法打开连接您收到的错误消息是什么?文件中有错误(文件,“rt”):无法打开连接
dirs <- list.dirs(recursive=FALSE)
dirs <- grep('output', dirs, value = TRUE)
result <- lapply(dirs, object_extraction)
object_extraction<-function(x){ 
  image<-read.csv(file.path(x, "image.csv"), header=T, sep=",") 
  cells<-read.csv(file.path(x, "cells.csv"), header=T, sep=",")
  object<-dplyr::inner_join(cells,image,by="ImageNumber")
  return(object)
}