data.frame
から日付情報を含むベクトルを抽出し、サブセット化しようとしています。 DataFrame
からDateVector
を正常に抽出できます。ただし、データをサブセット化しようとするとエラーが発生します。DateVectorのサブセット
サブセットを中心に/* */
が指定されていると、以下の問題は解決します。
error: invalid user-defined conversion from 'Rcpp::LogicalVector {aka Rcpp::Vector<10, Rcpp::PreserveStorage>}' to 'int' [-fpermissive]
Rcpp::DateVector StDate_sub = StDate[ind]
秒です:私はドキュメントを見て、しかし、方法を見つけることができませんでした
no known conversion from 'SEXP' to 'int' file585c1863151c.cpp:23:53: error: conversion from 'Rcpp::Date' to non-scalar type 'Rcpp::DateVector {aka Rcpp::oldDateVector}' requested
Rcpp::DateVector EtDate_sub = EtDate[ind];
Rcpp::cppFunction('
Rcpp::DataFrame test(DataFrame x, StringVector y) {
StringVector New = x["string_1"];
std::string KEY = Rcpp::as<std::string>(y[0]);
Rcpp::LogicalVector ind(New.size());
for(int i = 0; i < New.size(); i++){
ind[i] = (New[i] == KEY);
}
Rcpp::StringVector st1 = x["string_1"];
Rcpp::StringVector Id = x["ID"];
Rcpp::StringVector NameId = x["NameID"];
Rcpp::DateVector StDate = x["StartDate"];
Rcpp::DateVector EtDate = x["EndDate"];
/*
Rcpp::DateVector StDate_sub = StDate[ind];
Rcpp::DateVector EtDate_sub = EtDate[ind];
*/
return Rcpp::DataFrame::create(Rcpp::Named("string_1") = st1[ind],
Rcpp::Named("ID") = Id[ind],
Rcpp::Named("NameID") = NameId[ind]/*,
Rcpp::Named("StartDate") = StDate_sub,
Rcpp::Named("EndDate") = EtDate_sub*/
);
}')
は、私が受け取る2個の顕著なエラーがあります。申し訳ありませんが、もし私がそれを逃した。私はdata.frame
にいくつかの日付変数を持っています。私はRcppを使ってネストされたforループのデータセットをサブセット化しています。現在、時間がかかりすぎています。私はdata.table
またはdplyr
に実装することはできません。サブセットのデータセットは処理が必要なためです。
サブセット演算子の実装のように見えるのは、新旧両方の 'DateVector'実装の両方で問題になります。/ – coatless