1

可能重复:
如何通过 R 中的包装函数传递函数及其参数?类似于 python 中的 *args 和 *kwargs

我正在尝试使用现有函数编写一个函数,并且能够将参数传递给现有函数,而无需在新函数中定义每个参数。这很难用语言来表达。所以这是一个例子:我正在使用 read.table 编写一个函数,以便使用我正在编写的函数定义必须读取的文件名(基本上我不想更改工作目录)。以下是示例:

MyFilePath <- "/Users/John/Work/"

  read.table.path <- function(file, path){
   x <- paste(path, file, sep="/")
   return(read.table(x))
  }

因此,要读取该文件夹中名为“table.txt”的文件:

table <- read.table.path(file="table.txt", path=MyFilePath)

但是,我如何使用此函数 ( read.table.path) 以便将参数传递给read.table,例如,如果我想说header=TRUEfill=TRUE等。

4

1 回答 1

9

采用...

read.table.path <- function(file, path,...){
  read.table(file.path(path, file), ...)    
}

(该file.path函数比 快paste,并填充适当的平台特定路径分隔符)。

您描述的那种小功能通常称为“包装器”。

于 2012-12-31T04:56:38.033 回答