2016-11-25 51 views
0

在R中有几个函数可以让我得到具有不同随机结果的向量,我们称这些函数为r1,r2,r3和r4。使用函数作为另一个函数的参数并在每个循环中执行它

现在我想写一个名为'simulation'的函数来模拟上面这些函数之一,并计算不同的值,如期望值等。 此外,我只需要一个函数,可以模拟r1,r2,r3或r4,这是可能的,因为它们全部放出相同类型的矢量。

我已经通过下面的方式试了一下:

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

然后我执行这样的: 模拟(R1(),500)

这工作得很好,但问题是,函数r1()只运行一次,但因为我想模拟它n次,我希望它每次运行for循环时都会运行。

有什么办法可以做到这一点?

提前致谢!

回答

3

您可以通过函数本身,而不是它的返回值:

simulation(r1, 500) 

但你必须修改代码:

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

哇,没想到,这将是那么容易。谢谢! – upman

相关问题