Rcpp:"overloaded function with no contextual type information" 用于 R::dbeta

Rcpp: "overloaded function with no contextual type information" for R::dbeta

我有包含 Rcpp 包的 C++ 代码。

在函数中我有以下循环:

for(int i=0; i<N; i++){
   double yi = y[i], xi = X_chain[i];
        
   double numerator = R::dbeta( yi, alpha_par, beta, log=false );
   double denumerator = R::dbeta( xi, alpha_par, beta, log=false );
   double alpha = std::min(1.0,(numerator)/(denumerator));
   
   (...)

}

其中 alpha_par 和 beta 是双精度值,它们是 beta 分布的参数。

对于我使用函数 R::dbeta 的两行,我都收到错误“没有上下文类型信息的重载函数”。我真的很困惑,因为代码中不同点的 runif 和 rbinom 工作得很好。

我不确定我是否重现了与您在 运行 R::dbeta(0.5, 1.0, 1.0, log = false) 时遇到的相同问题,但我认为您不应该在 C++ 中命名参数。例如。简单地做 R::dbeta(0.5, 1.0, 1.0, false) 对我有用。