5
呼び出しオブジェクトから形式(引数)を取得するにはどうすればよいですか? formals()は関数でしか動作しないようです。R - 呼び出しオブジェクトから形式を取得する
呼び出しオブジェクトから形式(引数)を取得するにはどうすればよいですか? formals()は関数でしか動作しないようです。R - 呼び出しオブジェクトから形式を取得する
まあ、コールはホルマール、唯一の実引数を持っていない...差がfoo <- function(x, y, ..., z=42)
のような機能がfoo(42, bar=13)
よう実際の引数でを呼び出すことができるということで。
...しかし、引数は次のように行うことができます行き方:
a <- call('foo', a=42, 13)
as.list(a)[-1]
#$a
#[1] 42
#
#[[2]]
#[1] 13
...一方で、あなたは通常(常にではない)実際の関数を見つけて、それのためのホルマールを見つけることができます。あなたがへの呼び出しを強制する必要はありません
関数は(上記
foo
への呼び出しのように)見つからない場合は、取り扱い、いくつかのエラーを追加する必要があるだろう...リスト - あなたはちょうどwあなたが最初の要素を覚えている限り、それをリストとしてorkに追加することができます。また、おそらく 'match.fun'ではなく' match.call'が必要です - デフォルトと提供された引数を組み合わせることができます。 – hadley'match.fun'の代わりに' match.call'をしたくないのですが、それは便利です: 'match.call(eval(a [[1]))、a)' – hadley
@hadley - ありがとうございます'match.call'です。あなたが何をしているのか正確に知っていれば、リストに強制することはできませんが、 'a [-1]'は非常に奇妙に印刷され、例えば 'do.call'にargsとして渡すことはできません... – Tommy