关于类的RInside InternalFunction,如何从R调用函数

时间:2017-11-08 16:13:39

标签: c++ r rcpp rinside

我需要从C ++调用R并使用优秀的RInside / Rccp包。 我不是R专家,这可能解释了我的问题,对不起,如果它太明显了。

我创建了一个对象和一个包装类,类似于Rinside examples / standard / rinside_interactive0.cpp。在此示例中,它显示了如何将方法附加到R属性类。

wr.attr("class") = "Solver";    
R["Solver"] = wr;
... more code
R["names.Solver"] = Rcpp::InternalFunction(& Names); <-- Hot to call this one from R

实际上我从未看到从R到此函数的调用,以及R语法是什么?不过,我以这种方式使用R.parseEval:

R.parseEval("Solver.names()");

但这不起作用并给出错误:

Error in Solver.names() : could not find function "Solver.names"
terminate called after throwing an instance of 'std::runtime_error'
what():  Error evaluating: Solver.names()

我的问题是如何调用R中的Solver.names函数(在C ++代码中处理)? 请注意,赋值/检索功能正常,可能是因为它们在某种程度上是“原始的”?

非常感谢 弗兰克

1 个答案:

答案 0 :(得分:0)

我发现了,我发帖以防有人在搜:

R.parseEval("names.Solver(Solver)");

对我来说不是很优雅..,它使用functionName.class(Object)..

F。