小编uto*_*obi的帖子

Rcpp 中 if-else 语句的问题

使用以下简化代码,我希望从 N(0,1) 分布进行模拟,并返回一个包含模拟值的列表以及取决于模拟法线的向量(请参阅下面的代码)。问题是 if-else 语句根本不起作用!请问有人可以帮我理解问题出在哪里吗?

#include <RcppArmadillo.h>
#include <Rcpp.h>
using namespace Rcpp;

//[[Rcpp::depends(RcppArmadillo)]]

//[[Rcpp::export]]

List cond(arma::vec epsilon, IntegerVector Nsim) {
int iNsim = Nsim[0];
arma::vec ans(1);
arma::vec epsil(epsilon);
arma::vec vans  = arma::zeros(iNsim);
arma::vec vcond = arma::zeros(iNsim);
LogicalVector cond;
RNGScope scope;

for (int i=0; i<iNsim; i++) {

  ans = Rcpp::rnorm(1, 0.0, 1.0);
  vans.row(i) = ans[0];
  cond = abs(ans) >= epsil;
  if (cond) {
    vcond.row(i) = 10;
  } else {
    vcond.row(i) = -10;
  }
}

return List::create(
    _["sim"] = vans,
    _["cond"] = …
Run Code Online (Sandbox Code Playgroud)

c++ if-statement rcpp

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

标签 统计

c++ ×1

if-statement ×1

rcpp ×1