有没有办法在replicate()中访问迭代次数?

时间:2013-04-11 10:51:24

标签: r base apply replicate

是否有某种方法可以访问replicate函数中的当前复制数,以便在重复评估中将其用作变量?例如,在这个简单的例子中,我想使用当前复制数来生成当前复制数的可变长度向量列表。例如,下面的x代表当前的复制:

replicate( 3 , rep( x , sample.int(5,1) ) )

我知道这个简单的例子很容易用lapply

lapply( 1:3 , function(x) rep( x , sample.int(5,1) ) )

但您可以访问replicate中的复制计数器吗?

1 个答案:

答案 0 :(得分:2)

不,至少不是以受支持的,用户友好的方式。正如阿伦所说:

> replicate
function (n, expr, simplify = "array") 
sapply(integer(n), eval.parent(substitute(function(...) expr)), 
    simplify = simplify)
...

> sapply
function (X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE) 
{
    FUN <- match.fun(FUN)
    answer <- lapply(X = X, FUN = FUN, ...)
    ...

现在,如果您通过sapply

,这就是3看到的内容
> integer(3)
[1] 0 0 0

为什么不编写自己的replicate版本作为快捷方式?