我在 R 中有一个简单的函数,它通过 lapply() 在我指定的一个目录中的许多 CSV 上运行 summary()。功能如下图:
# id -- the file name (i.e. 001.csv) so ID == 001.
# directory -- location of the CSV files (not my working directory)
# summarize -- boolean val if summary of the CSV to be output to console.
getMonitor <- function(id, dir, summarize = FALSE)
{
fl <- list.files(dir, pattern = "*.csv", full.names = FALSE)
fdl <- lapply(fl, read.csv)
dataSummary <- lapply(fdl, summary)
if(summarize == TRUE)
{ dataSummary[[id]] }
}
当我尝试指定目录然后将其作为参数传递给函数时,如下所示:
dir <- "C:\\Users\\ST\\My Documents\\R\\specdata"
funcVar <- getMonitor("001", dir, FALSE)
我收到错误:
文件中的错误(文件,“rt”):无法打开连接。另外:警告消息:在文件中(文件,“rt”):无法打开文件'001.csv':没有这样的文件或目录
然而,当我自己运行下面的代码时:
fl <- list.files("C:\\Users\\ST\\My Documents\\R\\specdata",
pattern = "*.csv",
full.names = FALSE)
fl[1]
它找到我指向的目录并且fl[1]正确输出[1] "001.csv"这是列出的第一个文件。
我的问题是尝试将此路径变量作为参数传递给我的函数时我做错了什么。R不能以这种方式处理参数吗?有什么我完全想念的吗?我已经尝试过四处搜索并且熟悉其他编程语言,所以坦率地说,我现在陷入困境感到有点愚蠢/失败。