Je veux utiliser les arguments points (...
) dans une expression dans replicate
. J'ai remarqué qu'ils n'ont pas d'effet faire de cette façon: cependant,en utilisant l'argument points dans l'expression répliquée échoue - pourquoi exactement?
foo <- function(k=1, n=10, ...)
{
replicate(k, rnorm(n, ...))
}
foo(2, mean=100)
Les résultats ne sont pas une moyenne de 100.
[,1] [,2]
[1,] 0.2859647 -0.1046510
[2,] -0.7867414 0.5347617
L'utilisation d'un emballage, fonctionnera.
foo2 <- function(k=1, n=10, ...)
{
f <- function() rnorm(n, ...)
replicate(k, f())
}
foo2(2, mean=100)
maintenant, les résultats ont une moyenne de 100.
[,1] [,2]
[1,] 100.9644 100.6287
[2,] 100.0804 101.0218
Quels sont exactement les mécaniciens vont ici lors de l'évaluation de l'argument expr
dans replicate
. Quelqu'un peut-il donner une explication du comportement?
vous avez raison. Merci! Et pour moi: RTM, RTM:/ –
Les joies de l'évaluation non standard. Utilisez simplement 'sapply' directement dans cet exemple spécifique. – Roland