Rcpp中bool向量的子集向量

Rcpp中bool向量的子集向量,r,rcpp,rcpparmadillo,R,Rcpp,Rcpparmadillo,我想用布尔向量来子集向量{1,2,3,4}。例如,如果我的布尔向量是{false,true,true,true},我想得到向量{2,3,4}。在常规R中,我可以用 sample_states<-c(1:4)[c(a,b,c,d)] sample_这里有两个快速示例,说明如何创建Rcpp::LogicalVector并用它来子集另一个向量: #包括 //[[Rcpp::插件(cpp11)]] //[[Rcpp::导出]] Rcpp::数值向量子集1(){ 数值向量in={1.0,2

我想用布尔向量来子集向量{1,2,3,4}。例如,如果我的布尔向量是{false,true,true,true},我想得到向量{2,3,4}。在常规R中,我可以用

    sample_states<-c(1:4)[c(a,b,c,d)]

sample_这里有两个快速示例,说明如何创建
Rcpp::LogicalVector
并用它来子集另一个向量:

#包括
//[[Rcpp::插件(cpp11)]]
//[[Rcpp::导出]]
Rcpp::数值向量子集1(){
数值向量in={1.0,2.0,3.0,4.0};
Rcpp::LogicalVector掩码={false,true,true,true};
返回[面具];
}
//[[Rcpp::导出]]
Rcpp::数值向量子集2(){
Rcpp::NumericVector in=Rcpp::runif(10);
Rcpp::LogicalVector掩码=in>0.5;
返回[面具];
}
/***R
第1款()
种子(42)
第2款()
*/
第一个示例使用C++11中的“带括号的初始化”快速生成
LogicalVector
。您也可以轻松地分别指定值。第二个示例使用逻辑表达式创建
LogicalVector
。在这两种情况下,子设置看起来都非常像R(多亏了Rcpp sugar)


正如德克在评论中所说的那样:世界上还有更多的例子。只需搜索“indexing”或“LogicalVector”。

这在“indexing”的帖子中得到了回答,请阅读这些内容。谢谢,我会更仔细地阅读。在画廊里有没有什么地方可以让我创建一个矩阵和布尔向量?谢谢你抽出时间。