0

我需要从 C++ 调用 R,并且我正在使用出色的 RInside / Rccp 包。我不是 R 专家,这可能会解释我的问题,如果太明显,我很抱歉。

我制作了一个对象和一个包装类,类似于 Rinside 示例/标准/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++ 代码中处理)?请注意,分配/检索功能工作正常,可能是因为它们在某种程度上是“原始的”?

非常感谢弗兰克

4

1 回答 1

0

我发现,我发帖以防有人搜索:

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

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

F。

于 2017-11-09T11:20:32.207 回答