【发布时间】:2013-07-07 16:12:44
【问题描述】:
我有一系列向量,我将它们添加到 DataFrame 对象中以返回到 R。 当我尝试添加一个带有 long long 元素的向量时,问题就来了。
// [[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: insta从 '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&) [与 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::特征::named_object >, T4 = Rcpp::trai ts::named_object >, T5 = Rcpp::traits::named_object >, T6 = Rcpp::traits::named_object >, int RTYPE = 19, Rcpp::Vector = Rcpp::Vector, 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]' 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 中?
【问题讨论】:
-
@CauchyDistributedRV 不再是
RJSONIO::fromJSON('[12345678912]')给[1] 1.2346e+10 -
实现这一目标的最佳方法是扩展
Rcpp,为长向量编写自己的wrapwww.cran.r-project.org/web/packages/Rcpp/vignettes/Rcpp-扩展.pdf