2016-11-25 8 views
0

私は、ランダムな結果を持つベクトルを得るために、これらの関数をr1、r2、r3、r4と呼んでいます。関数を別の関数の引数として使用して各ループで実行する

ここでは、上記の関数の1つをシミュレートし、期待値などの異なる値を評価する 'シミュレーション'という別の関数を書きたいと思います。 さらに、r1、r2、r3、またはr4、これはすべて同じタイプのベクトルを出力するため可能です。

私は、以下の方法でそれを試してみました:

simulation <- function(f, n) { 
    result <- 0 
    for (i in 1:n) { 
    result <- result + f[1] 
    } 
    result 
} 

それから私はこのようにそれを実行します。 シミュレーション(R1()、500)

は、これは正常に動作しますが、問題があることです関数r1()は1回だけ実行されますが、n回シミュレートしたいので、forループを実行するたびに実行します。

私はこれを行う方法はありますか?

ありがとうございます!

答えて

3

あなたは代わりにその戻り値の関数自体を渡すことができます。

simulation(r1, 500) 

しかし、その後、あなたはコードを変更する必要があります。

result <- result + f()[1] 
+0

をうわー、それは簡単なことだろうと期待していませんでした。ありがとうございました! – upman

関連する問題