R:在函数调用中创建一个随机数

时间:2015-09-11 23:27:25

标签: r

假设我有以下功能,

foo <- function(x) {
  lapply(seq(sample(1:5,1)), function(y) x)
}

假设我这样做,

foo(runif(1))

我得到以下结果,

[[1]]
[1] 0.5354641
[[2]]
[1] 0.5354641

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

[[1]]
[1] 0.5354641
[[2]]
[1] 0.2895715

所以我想知道我能编写像

这样的函数吗?
bar <- function(x) {
    rand <- function() {
        runif(x)
    }
}

并将其称为foo(bar(1))以获得所需的结果?

1 个答案:

答案 0 :(得分:0)

实际上,这几乎可行,

bar <- function(x) {
    rand <- function() {
        runif(x)
    }
}

以下,

foo <- function(x) {
  lapply(seq(sample(1:5,1)), function(y) x)
}

并致电foo(bar(1))