我无法找到相关文档。看起来R源代码使用NewEnvironment
和R_NewHashedEnv
,但这些都不在公共标题中,因此看起来它们不能作为用户使用。我应该使用什么函数(或什么行代码)来生成新的ENVSXP?
答案 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>