On 26 February 2015 at 16:37, Pierre GLOAGUEN wrote: | Thanks, it works! | I'm not familiar with C++, is it necessary to always use such a function in C++ | or is it because of R/C++ interface?
Please use a Google search (or equivalent) for Rcpp::clone. This has been discussed extensively on numerous occassions. Dirk | Thanks again for your help, | | Pierre | | Le 26/02/2015 16:30, Jeffrey Pollock a écrit : | | Perhaps use the clone() function? | | library(Rcpp) | | cppFunction(" | NumericVector par_CMAtR(NumericVector vec_CMA) { | NumericVector out = clone(vec_CMA); | out[5] = exp(out[5]); | return out; | } | ") | | vec_C <- rep(1, 6) | par_CMAtR(vec_C) | print(vec_C) | | On Thu, Feb 26, 2015 at 3:16 PM, Pierre GLOAGUEN < | pierre.gloag...@ifremer.fr> wrote: | | | Hello everybody, | | I have a very simple example | I have a vector vec_CMA which length is a multiple of 6. | I want to get the exact same vector, except the last element which is | the exponential of the last element of vec_CMA | The code is the following | | //myfun.cpp | #include <Rcpp.h> | using namespace Rcpp; | | // [[Rcpp::export]] | NumericVector par_CMAtR(NumericVector vec_CMA){ | int K = (vec_CMA.size())/6; | NumericVector out(6*K); | out = vec_CMA; | out[6*K-1] = exp(vec_CMA[6*K-1]); | return out; | } | | I apply the function with the R code | sourceCpp("myfun.cpp") | vec_C <- rep(1,6) | par_CMAtR(vec_C) | [1] 1 1 1 1 1 2.718282 | | 8 | | works fine. Except the vec_C is modified too! | vec_C | [1] 1 1 1 1 1 2.718282 | | It's the first time I have this kind of problem. What is wrong in my | code? | Thanks for your help, | | Pierre Gloaguen | | | _______________________________________________ | Rcpp-devel mailing list | Rcpp-devel@lists.r-forge.r-project.org | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel | | | | _______________________________________________ | Rcpp-devel mailing list | Rcpp-devel@lists.r-forge.r-project.org | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel