在Rcpp中访问命名列表元素

3
我希望您能够在Rcpp中按名称访问一个命名列表元素。
在R中,
> b = list(bgroups=c(1,1,1,1,1,0,0,0,0,0))
> b$bgroups
[1] 1 1 1 1 1 0 0 0 0 0

然后我尝试在Rcpp中访问它,我尝试了:

cppFunction(
  "
void f(List & b){
 std::vector<int> c(10) = as<std::vector<int>> b['bgroups'];
}
  "
)

...

NumericVector groupings = b['bgroups'];

...

NumericVector groupings(10) = b(4);

但是没有用。我已经查看了Dirk的许多有用的答案,但是无法建立连接。 https://github.com/eddelbuettel/rcppexamples/blob/master/src/ListExample.cpp 如何在R和Rcpp中处理列表 How to handle list in R to Rcpp
2个回答

4

不确定我是否完全理解你的问题,但你是否在CppFunction中尝试过以下内容。

NumericVector Bgroups = as<NumericVector>(b["bgroups"]);

是的。OP试图索引一个未命名的std::vector向量。 - Dirk Eddelbuettel
尝试使用“NumericVector split(const List & b){ NumericVector c= as<NumericVector>(b['bgroups']); return c;}”进行编程,但导致我的R会话终止。 - user2723494

0

谢谢。我尝试了NumericVector split(const List & b){NumericVector c= as<NumericVector>(b['bgroups']); return c;},但这导致我的R会话退出。 - user2723494
我为了更清晰地表达修改了问题。能麻烦您看一下吗? - user2723494

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接