2

R に返すために DataFrame オブジェクトに追加する一連のベクトルがあります。長い長い要素を持つベクトルを追加しようとすると問題が発生します。

// [[Rcpp::export]]
DataFrame test()
{
std::vector<long long> x;
return DataFrame::create(Named("x") = x);
}

返されるエラーは

g++ -m64 -I"C:/R/R-30~1.1/include" -DNDEBUG -I"C:/R/R-3.0.1/library/Rcpp/include" -I"d:/RCompile/CRANpkg /extralibs64/local/include" -O2 -Wall -mtune=core2 -c quotes.cpp -o quotes.o C:/R/R-3.0.1/library/Rcpp/include/RcppCommon.h からインクルードされたファイル: 117:0、C:/R/R-3.0.1/library/Rcpp/include/Rcpp.h:27 から、quotes.cpp:1 から: C:/R/R-3.0.1/library/Rcpp/ include/Rcpp/internal/wrap.h: 関数内 'SEXPREC* Rcpp::internal::wrap_dispatch_unknown_iterable(const T&, Rcpp::traits::false_type) [with T = long long int, SEXP = SEXPREC*, Rcpp:: traits::false_type = Rcpp::traits::integral_constant]': C:/R/R-3.0.1/library/Rcpp/include/Rcpp/internal/wrap.h:691:98: 'SEXPREC* Rcpp からインスタンス化::internal::wrap_dispatch_unknown(const T&, Rcpp::traits::false_type) [with T = long long int、SEXP = SEXPREC*、Rcpp::traits::false_type = Rcpp::traits::integral_constant]' C:/R/R-3.0.1/library/Rcpp/include/Rcpp /internal/wrap.h:723:96: 'SEXPREC* Rcpp::internal::wrap_dispatch_eigen(const T&, Rcpp::traits::false_type) からインスタンス化 [with T = long long int, SEXP = SEXPREC*, Rcpp: :traits::false_type = Rcpp::traits::integral_constant]' C:/R/R-3.0.1/library/Rcpp/include/Rcpp/internal/wrap.h:740:80: 'SEXPREC* Rcpp からインスタンス化::internal::wrap_dispatch_unknown_importable(const T&, Rcpp::traits::false_type) [with T = long long int, SEXP = SEXPREC*, Rcpp::traits::false_type = Rcpp::traits::integral_constant]' C: /R/R-3.0.1/library/Rcpp/include/Rcpp/internal/wrap.h:760:99: 'SEXPREC* Rcpp::internal::wrap_dispatch(const T&, Rcpp::traits:: からインスタンス化wrap_type_unknown_tag) [with T = long long int, SEXP = SEXPREC*]' C:/R/R-3.0.1/library/Rcpp/include/Rcpp/internal/wrap.h:863:104: 'SEXPREC* からインスタンス化Rcpp::wrap(const T&) [with T = long long int, SEXP = SEXPREC*]' C:/R/R-3.0.1/library/Rcpp/include/Rcpp/internal/wrap.h:193:3 : [14 のインスタンス化コンテキストをスキップ] C:/R/R-3.0.1/library/Rcpp/include/Rcpp/vector/Vector.h:395:9: 'static void Rcpp::Vector::replace_element__dispatch(Rcpp) からインスタンス化::traits::true_type, Rcpp::Vector::iterator, SEXP, int, const U&) [with U = Rcpp::traits::named_object >, int RTYPE = 19, Rcpp::traits::true_type = Rcpp: :traits::integral_constant, Rcpp::Vector::iterator = Rcpp::internal::Proxy_Iterator >, SEXP = SEXPREC*]' C:/R/R-3.0.1/library/Rcpp/include/Rcpp/vector/ Vector.h:384:9: ' からインスタンス化static void Rcpp::Vector::replace_element(Rcpp::Vector::iterator, SEXP, int, const U&) [with U = Rcpp::traits::named_object >, int RTYPE = 19, Rcpp::Vector::iterator = Rcpp::internal::Proxy_Iterator >, SEXP = SEXPREC*]' C:/R/R-3.0.1/library/Rcpp/include/Rcpp/generated/Vector_create.h:318:2: 'static Rcpp::Vector Rcpp::Vector::create からインスタンス化_dispatch(Rcpp::traits::true_type, const T1&, const T2&, const T3&, const T4&, const T5&, const T6&) [with T1 = Rcpp::traits::named_object >, T2 = Rcpp::traits::named_object >、T3 = Rcpp::traits::named_object >、T4 = Rcpp::traits::named_object >、T5 = Rcpp::traits::named_object >、T6 = Rcpp::traits::named_object >、int RTYPE = 19 , Rcpp::Vector = Rcpp::Vector<19>, Rcpp::traits::true_type = Rcpp::traits::integral_constant]' C:/R/R-3.0.1/library/Rcpp/include/Rcpp/ generated/Vector__create.h:288:37: 'static Rcpp::Vector Rcpp::Vector::create(const T1&, const T2&, const T3&, const T4&, const T5&, const T6&) からインスタンス化 [with T1 = Rcpp: :traits::named_object >、T2 = Rcpp::traits::named_object >、T3 = Rcpp::traits::named_object >、T4 = Rcpp::traits::named_object >、T5 = Rcpp::traits::named_object >、T6 = Rcpp::traits::named_object >、int RTYPE = 19、Rcpp::Vector = Rcpp::Vector<19>]' C:/R/R -3.0.1/library/Rcpp/include/Rcpp/generated/DataFrame_generated.h:59:73: 'static Rcpp::DataFrame Rcpp::DataFrame::create(const T1&, const T2&, const T3&, const T4& からインスタンス化, const T5&, const T6&) [with T1 = Rcpp::traits::named_object >, T2 = Rcpp::traits::named_object >, T3 = Rcpp::traits::named_object >, T4 = Rcpp::traits:: named_object >, T5 = Rcpp::traits::named_object >, T6 = Rcpp::traits::named_object >, Rcpp::DataFrame = Rcpp::DataFrame]' quotes.cpp:58:26: ここからインスタンス化 C:/ R/R-3.0.1/library/Rcpp/include/Rcpp/internal/wrap.h:474:11: エラー: 'long long int' から 'SEXP' への変換が無効です[-fpermissive] メイク:* [quotes.o] エラー 1 .

このタイプのベクトルを DataFrame に追加する方法はありますか?

4

1 に答える 1

6

悲しいことに、CRAN は long long なしの C 標準のみを許可するため、それはありません。

また、R 自体は数値 (別名 double) と整数のみを持ちます。したがって、タイプとして double を使用することをお勧めします。

于 2013-07-09T23:53:34.077 に答える