2013-07-02 75 views
0

我想包裝一個函數,它將一個表達式作爲它的參數。將表達式傳遞給嵌套的函數調用

例如:

f <- function(expr1) { 
    substitute(expr1) 
} 
f({Sys.time()}) 

其結果將是

>f({Sys.time()}) 
{ 
    Sys.time() 
} 

但是,如果我包裝一個函數g超過f

g <- function(expr2) { 
    f(expr2) 
} 

然後,結果變成

>g({Sys.time()}) 
expr2 

我應該怎麼做才能使包裝結果保持不變?

謝謝。

+0

同樣的問題,但是這有一個更好的標題:http://stackoverflow.com/questions/17407852/how-to-pass-an-expression-through-a-function - 用於-的子集函數對評估/ 17407998#17407998 –

回答

1

您可以使用:

g <- function(...) { 
    f(...) 
} 

## > g({Sys.time()}) 
## { 
##  Sys.time() 
## } 
相關問題