oop - 将 RInside 的 'R' 实例作为类/方法之间的参数传递

标签 oop r rcpp rinside

我一直在使用 Rcpp 和 RInside 来集成 RC++。我们有一个复杂但设计良好的 C++ 体系结构,我发现很难仅从 1 个函数访问 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 实例。

谢谢 - 亿康

最佳答案

是的,正如我之前写给 rcpp-devel list 的(如果你关心 Rcpp 和 RInside,你应该遵循)我刚刚添加了一个例子到 RInside将它嵌入 Qt .

我在 main() 中实例化 R,然后将对此对象的引用传递给使用它的类。这似乎是一个合适的模型,因为我们需要确保只有一个 R 实例在运行(R 不是多线程等——如果您需要更多实例,请考虑 Rserve

这个例子是now in SVN在我的盒子上看起来像这样:

enter image description here

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

关于oop - 将 RInside 的 'R' 实例作为类/方法之间的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5357765/

相关文章:

oop - 为什么 "Design Patterns"说 'two objects of the same type only need to share part of their interfaces' ?

oop - 强大的面向静态面向对象的多范式替代 Scala

c++ - 使用 Rcpp 时如何并行化 C++ 代码?

c++ - Rcpp - 将 sregex_token_iterator 的结果捕获到 vector

c++ - 在 Windows 10 中将 GSL 库链接到 RcppGSL

java - 为什么事件通常在发送时创建?

programming-languages - Smalltalk 有什么特别之处?

r - 如何有效地从文本文件的每一行读取第一个字符?

R:函数中使用的ggplot2不反射(reflect)字体大小变量的变化

r - 如何生成矩阵 A) 每一行只有一个值 1; B)行总和为一