我正在完成一个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",然后从该目录加载数据.
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)