我最近尝试更新CRAN上的simest包,并意识到我需要注册本机例程。我以某种方式管理了这个,当我运行R CMD检查simest时,我得到一个警告,C函数没有文档。我不确定为什么会这样?
v1 <- rle(unlist(Map(":", x[-length(x)], x[-1])))$values
c(seq(v1[1]), v1[-1])
#[1] 1 2 3 4 5 4 3 2 1 2 3 4 5 6
头文件simest.h只包含C函数定义。我从R CMD检查得到的警告如下:
#include <R_ext/Rdynload.h>
#include "simest.h"
static R_NativePrimitiveArgType derivcvxpec_t[] = {
INTSXP, REALSXP, REALSXP, REALSXP, REALSXP
};
static R_NativePrimitiveArgType cpen_t[] = {
INTSXP, REALSXP, REALSXP, REALSXP, REALSXP,
REALSXP, REALSXP, REALSXP, REALSXP, REALSXP, REALSXP,
INTSXP, REALSXP, REALSXP, INTSXP, REALSXP
};
static R_NativePrimitiveArgType predcvxpen_t[] = {
INTSXP, REALSXP, REALSXP, REALSXP, REALSXP,
REALSXP, REALSXP, REALSXP, REALSXP, REALSXP, REALSXP
};
static R_NativePrimitiveArgType spen_egcv_t[] = {
INTSXP, REALSXP, REALSXP, REALSXP, REALSXP,
REALSXP, REALSXP, REALSXP, INTSXP, INTSXP, REALSXP
};
static R_NativePrimitiveArgType penta_t[] = {
INTSXP, REALSXP, REALSXP, REALSXP, REALSXP,
REALSXP, REALSXP, REALSXP
};
static const R_CMethodDef cMethods[] = {
{"derivcvxpec", (DL_FUNC) &derivcvxpec, 5, derivcvxpec_t},
{"cpen", (DL_FUNC) &cpen, 16, cpen_t},
{"predcvxpen", (DL_FUNC) &predcvxpen, 11, predcvxpen_t},
{"spen_egcv", (DL_FUNC) &spen_egcv, 11, spen_egcv_t},
{"penta", (DL_FUNC) &penta, 8, penta_t},
{NULL, NULL, 0}
};
void R_init_simest(DllInfo *dll)
{
R_registerRoutines(dll, cMethods, NULL, NULL, NULL);
R_useDynamicSymbols(dll, FALSE);
}
这些都是C函数。任何帮助表示赞赏。谢谢。