我正在使用R包“ comperank”中的compute_iterative_ratings函数: https://github.com/cran/comperank/blob/master/src/RcppExports.cpp
我想修改此函数,使其接受另一个参数(称为 amateur 的整数变量),以便该函数变为:
compute_iterative_ratings(rate_fun,player1_id,score1,player2_id,score2,initial_ratings,业余)
我只想复制cpp文件,修改它以接受额外的参数,然后将其保存到我的工作目录中,以便我可以在需要时调用sourceCpp。这对我来说是新领域,所以我不确定应该编辑什么。我也不知道最后2个代码块是什么意思。
static const R_CallMethodDef CallEntries[] = {
{"_comperank_compute_iterative_ratings", (DL_FUNC) &_comperank_compute_iterative_ratings, 6},
{NULL, NULL, 0}
};
RcppExport void R_init_comperank(DllInfo *dll) {
R_registerRoutines(dll, NULL, CallEntries, NULL, NULL);
R_useDynamicSymbols(dll, FALSE);
}
答案 0 :(得分:1)
您正在查看的代码是自动生成的。当您调整相应的C ++函数并在包中调用Rcpp::compileAttributes
时,此代码将更新。因此,您应该编辑iterative-ratings.cpp而不是RcppExports.cpp。使用Rcpp::sourceCpp
时也是如此。
答案 1 :(得分:0)
您唯一需要更改的部分是将数字6
更改为7
,因为它将R告知函数_comperank_compute_iterative_ratings
中参数的数量。
static const R_CallMethodDef CallEntries[] = {
{"_comperank_compute_iterative_ratings", (DL_FUNC) &_comperank_compute_iterative_ratings, 7},
{NULL, NULL, 0}
};
有关更多信息,请参见 https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Registering-native-routines