我应该使用 sapply 来运行不需要参数的模拟吗?

冲突编码器

我正在运行数千次不需要任何参数的模拟。这是一个非常简单的例子:

simulate <- function() sum(sample(1:10, size = 5))

我可以跑

results <- rep(0,1000)
for(i in 1:1000){
  results[i] <- simulate()
}

...但我已经多次阅读 R 中的 for 循环很慢,我需要最大限度地提高速度(我正在做的实际模拟比这更耗时)。

  1. 我应该使用apply家庭成员results吗?如果可以,如何使用?
  2. sapply仍然比for循环更快,如果的元素results不会在模拟功能被使用?
罗纳克·沙阿

你可以使用sapply这个,但通常我更喜欢这种情况replicate

set.seed(123)
replicate(10, simulate())
#[1] 29 24 27 29 29 19 22 31 28 23

您还可以使用rerunin purrrwhich 的行为方式与replicate.


使用sapply这种方式将使用匿名函数。

sapply(1:10, function(X) simulate())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章