繁体   English   中英

在 R package 中查找 Rcpp function

[英]Find Rcpp function in a R package

I want to print the C code of the bh function in the R package frailtysurv . 所以我输入:

> frailtySurv:::bh
function (d_, R_star, K_, Y_, N_, N_dot, beta, theta, frailty, 
    weights, abstol, reltol, maxit) 
{
    .Call("_frailtySurv_bh", PACKAGE = "frailtySurv", 
        d_, R_star, K_, Y_, N_, N_dot, beta, theta, frailty, 
        weights, abstol, reltol, maxit)
}
<bytecode: 0x0000025263262be0>
<environment: namespace:frailtySurv>

在相应的 Github 页面顶部带有此警告:

# Generated by using Rcpp::compileAttributes() -> do not edit by hand

但是后来我在“frailtySurv”库或其他可以找到_frailtySurv_bh function 的文件中找不到src文件。 package 源代码中没有任何.Rcpp函数的踪迹。 我知道类似的问题已经被问过几次(例如: hereherehere等)来打印由.Call调用的函数。 这些对我来说没有帮助。

关于在哪里可以找到_frailtySurv_bh function 的任何提示?

谢谢:-)

_frailtySurv_bh function 在此处定义的RcppExports.cpp文件中定义,如下所示:

RcppExport SEXP _frailtySurv_bh(SEXP d_SEXP, SEXP R_starSEXP, SEXP K_SEXP, SEXP Y_SEXP, SEXP N_SEXP, SEXP N_dotSEXP, SEXP betaSEXP, SEXP thetaSEXP, SEXP frailtySEXP, SEXP weightsSEXP, SEXP abstolSEXP, SEXP reltolSEXP, SEXP maxitSEXP) {
BEGIN_RCPP
    Rcpp::RObject rcpp_result_gen;
    Rcpp::RNGScope rcpp_rngScope_gen;
    Rcpp::traits::input_parameter< NumericVector >::type d_(d_SEXP);
    Rcpp::traits::input_parameter< List >::type R_star(R_starSEXP);
    Rcpp::traits::input_parameter< List >::type K_(K_SEXP);
    Rcpp::traits::input_parameter< List >::type Y_(Y_SEXP);
    Rcpp::traits::input_parameter< List >::type N_(N_SEXP);
    Rcpp::traits::input_parameter< List >::type N_dot(N_dotSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type beta(betaSEXP);
    Rcpp::traits::input_parameter< NumericVector >::type theta(thetaSEXP);
    Rcpp::traits::input_parameter< String >::type frailty(frailtySEXP);
    Rcpp::traits::input_parameter< NumericVector >::type weights(weightsSEXP);
    Rcpp::traits::input_parameter< double >::type abstol(abstolSEXP);
    Rcpp::traits::input_parameter< double >::type reltol(reltolSEXP);
    Rcpp::traits::input_parameter< int >::type maxit(maxitSEXP);
    rcpp_result_gen = Rcpp::wrap(bh(d_, R_star, K_, Y_, N_, N_dot, beta, theta, frailty, weights, abstol, reltol, maxit));
    return rcpp_result_gen;
END_RCPP
}

您会看到它实际上是 C++ function 的一个非常薄的包装器,称为bh ,它有点太长,无法在此处复制,但在此处定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM