1

私は主にRユーザーですが、コーディング(速度)を向上させるためにRcppを学びたいと思っています。だから私はC++Rcppをいじり始めました。行列の行 (つまり、最初の行) を取り、そこからベクトルを差し引く (m[1,]-vec )。

私はこれがばかげて単純に聞こえることを知っていますが、それを機能させることができません。

code <- '
arma::mat beta = Rcpp::as(beta_);
arma::vec y = Rcpp::as(y_);
arma::rowvec S= beta.row(0);

arma::vec d = S - y;
return Rcpp::wrap(d);
'
fun <- cxxfunction(signature(beta_="matrix",y_="numeric"),code, plugin="RcppArmadillo")
m <- matrix(1:9,3)
vec <- c(1,2,5 )
fun(m,vec) fun(m, vec)
のエラー:

R では、これは
m[1,]-vec
0 2 2として行われます

4

1 に答える 1

3
library(RcppArmadillo)
library(inline)
code <- '
arma::mat beta = Rcpp::as<arma::mat>(beta_);
arma::rowvec y = Rcpp::as<arma::rowvec>(y_);
arma::rowvec S= beta.row(0);
arma::rowvec d = S - y;
return Rcpp::wrap(d);
'
fun <- cxxfunction(signature(beta_ ="matrix",y_="numeric"),code, plugin="RcppArmadillo")
m <- matrix(1:9,3)
vec <- c(1,2,5)
fun(m,vec)
于 2012-02-09T04:03:42.367 に答える