我是Rcpp的新手.我已经读过Hadley Wickham和所有Rcpp小插曲的Advanced R,但我无法想象如何操纵NumericMatrix
对象.
有没有简单的方法来做这样的R
代码
mat <- matrix(1:9,3,3) v <- matrix(2,2,2) mat[1,] <- NA mat[,3] <- 0.5 mat[2:3,2:3] <- v
除了循环行和列并设置每个的值mat[i,j]
?
编辑3:好的,让我们再试一次.
这是我的cpp文件:
#includeusing namespace Rcpp; // [[Rcpp::export]] NumericMatrix lissage_incapC(NumericMatrix mat) { // INIT NumericMatrix x(mat.nrow()+1,mat.ncol()+1); NumericMatrix out(mat.nrow(),mat.ncol()); // Here i want to set x first row and first column to NA_REAL //**1 for(int i=0; i 1)) y.row(0) = NumericVector::get_na(); //problem here out(i,j-1) = 1/2*x(i,j) + 1/2 * mean(na_omit(y)); } } out(_,out.ncol()) = 0.5; // Problem here out(Range(0,7),_) = out(8,_); // Problem here return out; }
我在评论中指出了我的问题.在第一个(//**1)中,我必须编写两个循环来设置第一行和第一列.我要问的是:有没有更简单的方法可以做到,就像我们在R中做的那样?
这是我在代码的评论中指出的同样问题.