假设我有以下功能,
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))
以获得所需的结果?
答案 0 :(得分:0)
实际上,这几乎可行,
bar <- function(x) {
rand <- function() {
runif(x)
}
}
以下,
foo <- function(x) {
lapply(seq(sample(1:5,1)), function(y) x)
}
并致电foo(bar(1))
。