如何在R中保存省略号的内容以用于深层嵌套的函数调用?

时间:2014-09-06 21:47:54

标签: r ellipsis nested-function

我试图编写一个函数来遍历目录的直接子目录中的所有文件,然后运行自定义编写的函数来从文件的文本中提取特征:

load.samples <- function(path = ".", ...) {
  dirs <- dir(path, full.names = TRUE)[file.info(dir(path, full.names = TRUE))$isdir]
  lapply(dirs, function(p) {
    lapply(dir(p, full.names = TRUE), function(f) {
      text <- readChar(f, file.info(f)$size)
      extractFeatures(text, ...) #I want this call to pass along the extra parameters to load.samples
    })
  })
}

我试图将传递给load.samples函数的任何其他参数传递给extractFeatures函数。但是,上面的代码显然不起作用,因为对extractFeatures的调用不是直接调用,而是包含在两个嵌套函数中,这些函数通过对lapply的两个嵌套调用来调用,而我每当我尝试将任何额外参数传递给load.samples时,都会得到一个未使用的参数错误。

保存要在此类嵌套函数中使用的省略号值的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

将第一行更改为:

load.samples <- function(..., path = ".") {

诀窍是...应该在常规参数之后,但之前命名参数。