[Rcpp-devel] subsetting a matrix
Dirk Eddelbuettel
edd at debian.org
Tue Mar 4 03:41:01 CET 2014
On 3 March 2014 at 20:13, Yixuan Qiu wrote:
| Hi Hideyoshi,
| You may try the code below:
|
|
| cppFunction(depends = "RcppArmadillo",
| 'NumericMatrix ss(NumericMatrix X_, IntegerVector ind_) {
|
| int n = X_.nrow(), k = X_.ncol();
|
| arma::mat X(X_.begin(), n, k, false);
| arma::uvec ind = as<arma::uvec>(ind_);
| arma::mat submat = X.rows(ind - 1);
|
| return wrap(submat);
| }')
|
| m = matrix(rnorm(90), ncol=3);
| ss(m, c(1, 5, 12, 22))
Nice.
Also see
http://gallery.rcpp.org/articles/armadillo-subsetting/
Dirk
|
|
|
| Best,
| Yixuan
|
|
| 2014-03-03 19:24 GMT-05:00 Hideyoshi Maeda <hideyoshi.maeda at gmail.com>:
|
| Hi Rcpp-devel list,
|
| I would like to subset a matrix by only selecting certain rows.
|
| Something like the below?where y is a vector of integers that represent the
| rows to be selected. However the below does not seem to work.
|
| // [[Rcpp::export]]
| Rcpp::NumericMatrix ss(SEXP X_,SEXP y_){
| Rcpp::NumericMatrix X(X_)
| Rcpp::NumericVector y(y_)
| return X[y];
| }
|
| R> ss(matrix(rnorm(90),ncol=3),c(1,5,12,22))
|
| It is a bit similar to this question http://stackoverflow.com/questions/
| 13038256/subset-of-a-rcpp-matrix-that-matches-a-logical-statement however
| rather than just a single value, the find it for a vector.
|
| also I am not too sure to what extent the Armadillo submat function is able
| to say subset for example rows: 1,5, 12 and 22 and then call the resulting
| matrix something else?
|
| I was hoping that this subsetting procedure was going to be easy?but I seem
| to have got stuck.
|
| thanks
|
| HLM
|
|
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
|
|
|
|
| --
| Yixuan Qiu <yixuan.qiu at cos.name>
| Department of Statistics,
| Purdue University
|
| ----------------------------------------------------------------------
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel
mailing list