来自串联的R项目文件路径

Dou*_*Fir 6 r function

我正在完成一个R教程.我一直在研究一个函数,函数的一个部分是接受一个参数并用它来定义一个查找数据的目录.然后必须加载该数据.

正如以下作品:

getmonitor <- function(id, directory){

csvfile <- function(id) {
    if (id < 10) { 
        paste0(0,0,id,".csv")
    } else if (id < 100) {
        paste0(0,id,".csv")
    } else paste0(id,".csv")
}

foo <- read.csv(csvfile(id))

}
Run Code Online (Sandbox Code Playgroud)

精细.但我现在必须使用"directory"参数来定义必须从中读取csv文件的目录.我在这里尝试了各种各样的事情无济于事.

目前,如果假设数据在工作目录中,则代码可以工作.我需要说"转到名为(目录)的目录,然后读取.csv.

包含所有数据文件的目录称为"specdata",因此目录的参数是"specdata".

我尝试了以下方法:

getmonitor <- function(id, directory){

  csvfile <- function(id) {
      if (id < 10) { 
          paste0(0,0,id,".csv")
      } else if (id < 100) {
          paste0(0,id,".csv")
      } else paste0(id,".csv")
  }

  filepath <- append(directory,"/",csvfile(id))

  foo <- read.csv(filepath)

 }
Run Code Online (Sandbox Code Playgroud)

但后来我收到一条错误消息"错误!之后:无效的参数类型"

我尝试了一些不同的东西,如果我剪切并粘贴所有代码,它可能会比帮助更麻烦.

这样做的逻辑方法是什么?我是否在正确的轨道上追加?如果不是,我还应该起诉什么?我需要获取参数"directory",然后从该目录加载数据.

seb*_*n-c 7

getmonitor <- function(id, directory=getwd(), ...){

  csvfile <- sprintf("%03d.csv", id)

  filepath <- file.path(directory, csvfile)

  foo <- read.csv(filepath, ...)

  foo

 }
Run Code Online (Sandbox Code Playgroud)