我正在编写一个 Rcpp 模块,并希望将其元素为向量的列表作为 RcppResultSet 列表的一个元素返回。例如,.Call("myfunc")$foo
应该是这样的:
[[1]]
[1] 1
[[2]]
[1] 1 1
[[3]]
[1] 1 1 1
(确切的数字在这里并不重要)。问题是我不知道这样做的正确 Rcpp 方式。我尝试传递 a vector<vector<int> >
,但这通过默默地将第一个向量的长度作为宽度来构造一个矩阵(即使矩阵是参差不齐的!)。我尝试构建一个RcppList
但很难将各种对象(如RcppVector
)安全地转换为SEXP
s。
有人对处理复杂结构(例如 Rcpp 中的向量列表)的最佳实践有提示吗?