4

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

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

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

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

但是你可以访问复制计数器replicate吗?

4

1 回答 1

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作为快捷方式?

于 2013-04-11T14:01:40.853 回答