在 Rcpp 中创建 R S4 类 的对象?

Creating objects of R S4 classes in Rcpp?

有一个 S4 R class 我需要在 Rcpp 中创建它的对象。是否可以这样做,如果可以,怎么做?

当然可以。这是从 Rcpp 包中的 S4 单元测试中获取的内容。

我们首先在 R 中创建一个 track class。然后我们创建一个最小函数,通过向构造函数提供一个字符串并 return 它来创建一个 S4 对象:

R> setClass("track", representation(x="numeric", y="numeric"))
R> cppFunction('SEXP trythis(std::string txt) { S4 foo(txt); return foo; }')
R> trythis("track")
An object of class "track"
Slot "x":
numeric(0)

Slot "y":
numeric(0)

R> 

您可以从 C++ 中设置槽值等 pp。