R中的随机数生成

时间:2015-09-11 22:30:27

标签: r

假设我有以下功能,

foo <- function(x) {
    print(x)
    print(x)
}

假设我这样做,

foo(runif(1))

我得到以下结果,

[1] 0.5354641
[1] 0.5354641

或其他一些随机数。我想要的是输出有两个不同的数字。这可能吗?换句话说,我想,

[1] 0.5354641
[1] 0.2895715

2 个答案:

答案 0 :(得分:1)

尝试从评论中解读您想要的内容,我认为您希望能够将随机数生成函数传递给另一个函数并让它运行多次。出于某种原因,您无法在主foo函数中指定它(这是上下文有帮助的地方)。我想你想要像这样使用match.fun()的东西:

foo <- function(FUN) {
    FUN <- match.fun(FUN)
    print(FUN())
    print(FUN())
}

my_runif <- function(){
    runif(1)
}

foo(my_runif)

它做你想要的我想:

> foo(my_runif)
[1] 0.6657059
[1] 0.7969368

答案 1 :(得分:0)

replicate(2, runif(1))答案必须至少为30个字符。