2016-10-30 6 views
21

関数定義変更体を使用してRの関数、ホルマールおよび環境法

f <- function(x) { 
    x + x*x 
} 

3の方法はbodyformalsenvironmentを修正するために使用することができる、すなわち

> body(f) 
{ 
    x + x * x 
} 

変更したい場合身体を使用してbody

> body(f) <- expression({x*x*x}) 
> f 
function (x) 
{ 
    x * x * x 
} 

を参照してください。

ホルマール

formals

(x = 3, y = 6)から
> formals(f) <- list(x = 3, y = 4) 
> f 
function (x = 3, y = 4) 
{ 
    x * x * x 
} 

を使用して、引数を変更したい場合は、その変更を参照してください。

しかし、代わりに(x, y)に引数を変更したい場合。明らかにformals(f) <- list(x, y)は動作しません。

ご協力いただければ幸いです。

答えて

21

あなたはalistを使用する必要があります。

formals(f) = alist(x =, y =) 

その未評価の引数からリストを作成alist

+0

何らかの理由で私の以前のコメントは削除されましたが、もし私の答えで誰かがエラー/省略を指摘できたら*実際に興味があります。 –

関連する問題