r - 如果不包括 GetRNGstate() 有什么问题?

标签 r rcpp

GetRNGstate()PutRNGstate()对我来说是个谜。我已阅读 的第 6.3 节编写 R 扩展 但它只说“用户必须调用”它们和“这些基本上读入(或创建).Random.seed 并在使用后将其写出”。

我最初认为,如果我没有包含它们,那么 set.seed() R 中的函数将无法在我的 Rcpp 函数上工作。所以我做了一些实验,但事实证明,如果没有 GetRNGstate(),一切似乎都没有问题。和 PutRNGstate() .我觉得我一定遗漏了一些东西,那么为什么以及何时应该包含这两个功能?

下面是我自己的实验:

// [[Rcpp::export]]
NumericVector myrv4(int n) {
  NumericVector x = rnorm(n, 0.0, 1.0);
  return x;
}

我的测试结果:
> n <- 2
> set.seed(1234)
> myrv4(n)
[1] -1.2070657  0.2774292
> set.seed(1234)
> myrv4(n)
[1] -1.2070657  0.2774292

最佳答案

您错过了使用 Rcpp Attributes 为您提供的事实,因为它应该包含它。尝试使用 , verbose=TRUE 构建查看

 Rcpp::RNGScope __rngScope

为您插入自动魔法盟友。

关于r - 如果不包括 GetRNGstate() 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762927/

相关文章:

r - 使用 multiarch 在开发过程中快速安装包

c++ - 在 R 中定义一个矩阵并将其传递给 C++

r - 在 R 中调用组合函数循环 foreach 时出错

r - 如何正确使用 tryCatch() 并忽略此 rvest 函数中的 404 错误?

r - 将 R 中的两个列表组合成一个数据框

r - 安装包 ‘devtools’ 在 Ubuntu 上具有非零退出状态

c++ - Rcpp 生成变量 : portable -mpopcnt flag

c++ - 转换 Rcpp NumericMatrix 以与 Boost Geometry 一起使用

r - 与 rpath 的动态链接在 Ubuntu 17.10 下不起作用

r - 年度组意味着 dplyr 中的组不均匀?