相关疑难解决方法(0)

从Rcpp改变R的种子以保证再现性

我试图在rcpp中写一个函数r(d,n).该函数从正态分布N(0,d)返回n个随机抽取.应该很好地定义这个函数,因此只要d和n不改变它们的值,函数就应该返回相同的draw.

如果d被限制为整数,这将不会成为问题,在这种情况下,我可以设置种子并完成工作

// set seed
// [[Rcpp::export]]
void set_seed(unsigned int seed) {
  Rcpp::Environment base_env("package:base");
  Rcpp::Function set_seed_r = base_env["set.seed"];
  set_seed_r(seed);  
}

// function r(d, n)
// [[Rcpp::export]]
vec randdraw(int d, int n){
  set_seed(d);
  vec out = randn(n);
  return out;
}
Run Code Online (Sandbox Code Playgroud)

但显然我不想将d限制为整数.理想情况下,d应该是双倍的.有什么想法吗?谢谢!

c++ r rcpp

3
推荐指数
1
解决办法
588
查看次数

标签 统计

c++ ×1

r ×1

rcpp ×1