Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 通过冲洗液';s';R';实例作为类/方法之间的参数 我一直在使用RCPP和RIN来集成R和C++。我们有一个复杂的,但设计良好的C++架构,我发现很难从1个函数内访问R。是否可以将R实例传递给不同的类/函数,以获得更为面向对象的设计?如果有,是否有任何例子_Oop_R_Rcpp_Rinside - Fatal编程技术网

Oop 通过冲洗液';s';R';实例作为类/方法之间的参数 我一直在使用RCPP和RIN来集成R和C++。我们有一个复杂的,但设计良好的C++架构,我发现很难从1个函数内访问R。是否可以将R实例传递给不同的类/函数,以获得更为面向对象的设计?如果有,是否有任何例子

Oop 通过冲洗液';s';R';实例作为类/方法之间的参数 我一直在使用RCPP和RIN来集成R和C++。我们有一个复杂的,但设计良好的C++架构,我发现很难从1个函数内访问R。是否可以将R实例传递给不同的类/函数,以获得更为面向对象的设计?如果有,是否有任何例子,oop,r,rcpp,rinside,Oop,R,Rcpp,Rinside,为了详细说明这个问题, 我想说像这样的事情 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[]) {

为了详细说明这个问题, 我想说像这样的事情

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实例


谢谢-Egon

是的,正如我之前在中所写的那样(如果您关心Rcpp和RInside,您应该遵循这一点),我只是添加了一个示例,将其嵌入其中

我在
main()
中实例化R,然后将对该对象的引用传递给使用它的类。这似乎是一个适当的模型,因为我们需要确保只有一个R实例正在运行(R不是多线程等)---如果您需要更多的实例,请考虑.< /P> 这个例子在我的盒子上是这样的:


我非常喜欢它,因为它可以让你玩混合游戏,分散两个绘图的中心位置等,并查看在哪个带宽上你不再区分估计密度的两个驼峰。

不,它不会创建新实例。你做的是正确的(TM)您可以告诉我查看,例如在
top
htop
查看生成了多少个R进程(一个),以及是否看到新的进程ID(不,您没有)。