【发布时间】:2011-07-18 11:36:49
【问题描述】:
我一直在使用 Rcpp 和 RInside 来集成 R 和 C++。我们有一个复杂但设计良好的 C++ 架构,我发现很难从一个函数中访问 R。是否可以将 R 实例传递给不同的类/函数,以获得更多的 OOP 设计?如果是,有没有例子?
要详细说明查询, 我想说这样的话,
void foo(RInside& R0, int& x0)
{
R0.assign(x0,"totalSum");
}
void foo2(RInside& R0, int& y0)
{
R0.assign(y0,"temp");
R0.parseEvalQ("totalSum = totalSum + temp");
}
int main(int argc, char *argv[])
{
RInside R(int argc, char *argv[]);
int x=10, y = 11;
foo(R,x);
foo2(R,y);
return 0;
}
我目前注意到的是,每次调用 foo,可能会创建一个新的 RInside 实例。
谢谢你 - 埃贡
【问题讨论】:
-
不,它不会创建新实例。你在做正确的事 (TM),你可以告诉我的样子,例如在
top或htop查看生成了多少 R 进程(一个)以及您是否看到新的进程 ID(不,您没有)。