我要求合并两个数据帧内容,数据帧A和B需要C = A + B,尝试使用push_back(),但它非常慢。
// [[Rcpp::export]]
DataFrame mergeEx(DataFrame &dfSrcA , DataFrame &dfSrcB)
{
Rcpp::IntegerVector col = dfSrcA["A1"];
Rcpp::IntegerVector col1 = dfSrcA["A2"];
Rcpp::IntegerVector Bcol = dfSrcB["A1"];
Rcpp::IntegerVector Bcol1 = dfSrcB["A2"];
// col.push_back(7);
//col.push_back(8);
//col1.push_back(9);
//col1.push_back(10);
//return DataFrame::create(l,l1);
return DataFrame::create(Named("A1") = col, Named("A2") = col1);
}
尝试使用std :: copy(),如下面的函数,但得到错误
// [[Rcpp::export]]
DataFrame mergeEx(DataFrame &dfSrcA , DataFrame &dfSrcB)
{
Rcpp::IntegerVector col = dfSrcA["A1"];
Rcpp::IntegerVector col1 = dfSrcA["A2"];
Rcpp::IntegerVector Bcol = dfSrcB["A1"];
Rcpp::IntegerVector Bcol1 = dfSrcB["A2"];
long lsize = col.size();
std::copy(Bcol.begin(),Bcol.end(),col.begin()+lsize);
lsize=col1.size();
std::copy(Bcol1.begin(),Bcol1.end(),col1.begin()+lsize);
return DataFrame::create(Named("A1") = col, Named("A2") = col1);
}
C = mergeEx(A,B)
低于错误 mergeEx(A,B,C)出错: 无法使用R函数转换:as.data.frame
请求你的帮助建议尽快使用Rcpp合并两个数据帧的最快方法,我正在寻找速度,因为延迟是在R中合并这两个数据帧。
还建议我在数据框架上提供良好的文档链接,我发现这些文档提供了非常基本的信息。