如何从C创建新的R环境?

时间:2012-02-09 19:06:50

标签: c r

我无法找到相关文档。看起来R源代码使用NewEnvironmentR_NewHashedEnv,但这些都不在公共标题中,因此看起来它们不能作为用户使用。我应该使用什么函数(或什么行代码)来生成新的ENVSXP?

1 个答案:

答案 0 :(得分:3)

您想要allocSExp

/* C code in foo.c */
#include "Rinternals.h"
SEXP foo() {
  SEXP res = allocSExp(ENVSXP);
  return res;
}

> # R code (after running R CMD SHLIB foo.c)
> dyn.load("foo.dll")
> .Call("foo")
<environment: 0x016a4084>