我有两个向量..一个是按组输出,第二个是对一个组的appartenance的索引。在实践中,它就是那样的
mean_group = 1,2,3
group_id = 1,1,3,2,3,2
我想将每个id分配给它的组的值。在基本的R中,我只会做mean_group [group_id] ..
我必须避免使用循环,否则,使用armadillo就没有意义了。有没有办法做到这一点?
提前致谢
答案 0 :(得分:1)
我不确定你在Armadillo文档中试图找到这个有多难,但这在Armadillo开箱即用。请尝试以下文件armaind.cpp
:
#include <RcppArmadillo.h>
// [[Rcpp::depends(RcppArmadillo)]]
// [[Rcpp::export]]
arma::vec subsetter(arma::vec big, arma::uvec ind) {
arma::vec small = big.elem( ind );
return small;
}
/*** R
big <- 2*(1:10)
ind <- c(3,5,7)
subsetter(big, ind)
*/
让你
R> Rcpp::sourceCpp("/tmp/armaind.cpp")
R> big <- 2*(1:10)
R> ind <- c(3,5,7)
R> subsetter(big, ind)
[,1]
[1,] 8
[2,] 12
[3,] 16
R>
注意R和C ++之间的逐个索引差异。