我有一个函数可以从许多.csv
文件中创建一个表,然后对该表执行某些操作。该函数看起来像这样:
functionName <- function(directory) {
tempTable <- list.files(directory, all.files = TRUE)
allFilesTable <- lapply(tempTable, read.csv)
doSomethingWithNonNAValues(allFilesTable, na.rm = TRUE)
}
当我在控制台上运行以下行时,我得到了我想要的行为:
> tempTable <- list.files(getwd(), all.files = TRUE)
> allFilesTable <- lapply(tempTable, read.csv)
> doSomethingWithNonNAValues(allFilesTable, na.rm = TRUE)
然而,当我尝试使用上面的FUNCTION做同样的事情时,我收到一个错误:
> functionName(getwd())
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
no lines available in input
5 stop("no lines available in input")
4 read.table(file = file, header = header, sep = sep, quote = quote,
dec = dec, fill = fill, comment.char = comment.char, ...)
3 FUN(X[[i]], ...)
2 lapply(tempTable, read.csv)
1 functionName(getwd())
为什么命令在控制台中起作用,但在从函数调用时却不起作用?
答案 0 :(得分:1)
我修改了这个:
functionName <- function(directory) {
tempTable <- list.files(directory, all.files = TRUE)
etc.
到此:
functionName <- function(directory) {
tempTable <- list.files(getwd(), pattern = ".csv")
etc.
}
[Patric]略微修改代码,前面的代码列出了包含非“.csv”文件的所有文件,而不是“read.csv”中的错误输出。修改后的代码仅列出 “.csv”文件使其运行良好。