2012-12-31 31 views
1

可能重複:
How to pass a function and its arguments through a wrapper function in R? Similar to *args and *kwargs in python使用現有的功能編寫一個函數

我試圖使用現有的功能來編寫一個函數,能夠在參數傳遞給現有的功能而無需在新函數中定義每個參數。用文字表達這一點很難。所以這裏是一個例子: 我正在寫一個使用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

+3

這個問題肯定有更好的標題。 –

回答

9

使用...

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

file.path函數比paste更快,並填充相應的特定於平臺的路徑分隔符)。

你描述的小函數通常被稱爲「包裝」。

相關問題