是否有替代检查函数来检索R中与MIT许可证兼容的变量的地址或散列?
今天我用:
id = function(x) {
txt <- capture.output(.Internal(inspect(x, 1)))[[1]]
return(regmatches(txt,regexpr("@[^ ]+",txt)))
}
获取标识其唯一变量的任何变量(环境或向量)的地址。
我想将我的图书馆发布到CRAN,不幸的是我不建议使用我的解决方案。运行CHECK:
检查R代码是否存在问题...警告
在以下函数中找到.Internal调用:
的“id”
调用.Internal函数
“检查”
答案 0 :(得分:0)
最后,我使用了低级C实现:
#include <R.h>
#include <Rinternals.h>
#include <Rdefines.h>
SEXP id(SEXP x)
{
char buffer[32];
snprintf(buffer, 32, "%p", (void *)x);
return(ScalarString(mkChar(buffer)));
}