2010-12-08 3 views
2

ではありません複数の引数に複数の値を持つ関数を実行します。は、最初のものRでは

ys、T、N、およびσの値は固定していますが、ベータ値のベクトルとガンマ値のベクトルの場合は、ベータ値の可能な組み合わせごとにmyfunを実行することができますガンマ?

私はlapplyを検討していますが、試行する値が多い引数が関数の最初の引数ではなく、単なる1つの引数でないかどうかを指定する方法がわかりません。

また、lapplyまたは類似のものを適用できるようにmyfun関数を書き直す必要がありますか?

またはループを使用する必要がありますか?

ありがとうございました!

答えて

6

例として、dt()のような便利な複数引数の関数を使用しましょう。我々は( "マルチ") - 2つの引数を "パラレル"と "コンスタント"で供給し、他の2つの固定値を供給します。複数引数のリストに対してexpand.gridを使用してデータフレームを作成し、適切な名前でmapplyに渡し、残りの引数にMoreArgsを使用します。

gamma <- 1:3 
beta <- 1:4 
gb.df <-expand.grid(gamma=gamma, beta=beta) 
mfun <- dt 
mapply ("mfun", x=gb.df$gamma, df=gb.df$beta, MoreArgs=list(ncp=1, log=FALSE)) 
    [1] 0.26355595 0.14379745 0.07896827 0.31785177 0.17910975 0.08636815 
    [7] 0.34118167 0.19555939 0.08572842 0.35411486 0.20513016 0.08355531 
2

すべての組み合わせ部分のexpand.gridとともに、mapply関数とVectorize関数を見てください。

+0

+1、強力なthingy。 –

関連する問題