【问题标题】:Multiple runs of random generation in R [duplicate]R中的多次随机生成[重复]
【发布时间】:2013-10-16 17:24:20
【问题描述】:

我有三个具有时间序列回报的变量 A、B 和 C。我会使用 MASS 包中的 mvrnorm 运行随机抽样,为 A、B 和 C 生成 30 个值。

我希望能够重复此操作 10000 次,每次为 A、B、C 生成 30 个值。

我使用以下方法执行一次迭代:

sim.ret = mvrnorm(n = 30, mu = mu, Sigma = sigma)

我怎样才能运行这个函数 10,000 次?然后我使用每次迭代的结果进行一些计算。

任何帮助将不胜感激!谢谢。

【问题讨论】:

  • 根本不是重复的。我的问题是关于整个矩阵的随机生成,而不是向量。我正在寻找作为矩阵列表的结果。您发布的链接中都没有解决这些问题。
  • Oups.. 你是对的,我的错!

标签: r random quantmod


【解决方案1】:

使用replicate()

N = 10000
results = replicate(N, mvrnorm(n = 30, mu = mu, Sigma = sigma))
print(head(results, 10))

【讨论】:

  • 谢谢! results 会是一个列表吗?
  • 这几乎是相同的结构......我猜数组更快。
  • @Mariam 所以simplify = FALSE 然后!!!查看文档,这将立即清除它。 simplify 的默认值为 "array"
  • @Mariam 如果您想对列表中的每个元素使用applysome 函数,您将使用lapply 对数组执行此操作,您可以在适当的维度上使用apply,在你的情况是第三维,所以apply( results , 3 , myfunction ) 会很好地工作。添加我的建议作为对此答案的编辑。它不保证一个全新的答案。
  • 谢谢。 R 帮助有时可能“难以”阅读,但值得一试。
猜你喜欢
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 2018-12-01
  • 2020-03-07
  • 2018-09-14
  • 1970-01-01
  • 2018-10-24
  • 2017-11-20
相关资源
最近更新 更多