小编Dad*_*ade的帖子

问题从d到Rcpp导入dnorm和pnorm函数

当我尝试从R包导入dnorm()pnorm()函数stats到Rcpp 时,我遇到了以下奇怪的行为.余均适用dnorm()pnorm()均值为0,标准偏差为1〜观测的向量.如果我在同一个向量上重复计算几次,有时我会得到不同的结果.看起来我在导入这两个函数时出错了,但这并不能解释为什么结果有时好,而其他不一致.

我把这里导入dnorm()pnorm()函数的函数放在这里stats:

    {test_imp_script<-'
     using Eigen::VectorXd;
     VectorXd a = Rcpp::as<VectorXd>(aa);

     Environment st("package:stats");
     Function dn = st["dnorm"];
     Function pn = st["pnorm"]; 
     SEXP dd_a = dn(a,0,1);
     SEXP pp_a = pn(a,0,1);
     VectorXd d_a = as<VectorXd>(dd_a);
     VectorXd p_a = as<VectorXd>(pp_a);

     return List::create(Named("d") = d_a,Named("p") = p_a);'}
    test_imp <- cxxfunction(signature( aa="numeric"), test_imp_script, plugin = "RcppEigen")
Run Code Online (Sandbox Code Playgroud)

现在,尝试使用2000次重复运行以下示例test_imp.

    set.seed(123)
    t<-rnorm(1000,0,1)
    a<-test_imp(t)
    for (i in 1:2000){
      set.seed(123)
      b<-test_imp(t)
      cat(i,"d",c(sum(b$d),sum(b$p)),"\n")
      if …
Run Code Online (Sandbox Code Playgroud)

c++ r rcpp

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

标签 统计

c++ ×1

r ×1

rcpp ×1