2

私は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::CharacterVectorcx」のサイズを取得することは可能ですか?

のようなもの:cx.size()またはlength(cx)

よろしく、

アンディ

4

1 に答える 1

7

はい、.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> 
于 2012-02-03T05:16:12.163 に答える