R哈希或变量的唯一ID

时间:2016-11-26 11:54:52

标签: r hash memory-address internals objectid

是否有替代检查函数来检索R中与MIT许可证兼容的变量的地址或散列?

今天我用:

id = function(x) {
  txt <- capture.output(.Internal(inspect(x, 1)))[[1]]
  return(regmatches(txt,regexpr("@[^ ]+",txt)))
}

获取标识其唯一变量的任何变量(环境或向量)的地址。

我想将我的图书馆发布到CRAN,不幸的是我不建议使用我的解决方案。运行CHECK:

  

检查R代码是否存在问题...警告

     

在以下函数中找到.Internal调用:

     

的“id”

     

调用.Internal函数

     

“检查”

1 个答案:

答案 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)));
}