Rcpp: CharacterVector размер - PullRequest
       5

Rcpp: CharacterVector размер

2 голосов
/ 03 февраля 2012

Я проводил тестирование пакета Rcpp, и он прекрасно работает.

У меня небольшая проблема при передаче персонажа CharacterVector из R в C ++.

RcppExport SEXP testArray(SEXP Rarr){

        Rcpp::CharacterVector cx(Rarr);
        Rcpp::LogicalVector r(1);
        std::string test = "a";
        r[0] = (*(const char*)cx[0] == *(const char*)test.c_str());
        const char * temp = (const char*)cx;


        return Rcpp::wrap(temp.size());

    }

возможно ли получить размер "Rcpp :: CharacterVector cx" на основе кода выше?

что-то вроде: cx.size () или длина (cx) ?

С уважением,

Andy

1 Ответ

7 голосов
/ 03 февраля 2012

Да, .size() это:

R> library(inline)
R> 
R> vecsize <- cxxfunction(signature(x="character"), plugin="Rcpp", body='
+   Rcpp::CharacterVector cx = Rcpp::CharacterVector(x);
+   return Rcpp::wrap( cx.size() );
+ ')
R> vecsize(c("a", "b", "c"))
[1] 3
R> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...