在C ++中为Rcpp中的predict()输入创建数据框

时间:2014-04-09 22:38:57

标签: c++ r rcpp

假设我们有一个回归模型,它将名为AA和BB的参数作为输入。假设AA和BB都是双倍的。

我知道我应该用C ++创建一个数据框,并将其作为参数传递给预测函数。我想知道如何在C ++中创建和传递数据框?为什么以下代码不会出现问题?

            Rcpp::DataFrame dfin = Rcpp::DataFrame::create(Rcpp::Named("AA")=1.1,Rcpp::Named("BB")=1.2);
            std::string cmd2 = "predict(RegModel, todaydata = data.frame(dfin), \"probs\")";


            vector<double> prob_vector_reg_output = R.parseEval(cmd2); 

1 个答案:

答案 0 :(得分:3)

您可能会混淆Rcpp - 确实为您创建data.frame对象 - RInside可让您评估表达式。

看看,例如来自examples/standard/rinside_sample3.cpp示例的RInside:它显示您可以通过C ++端的RInside访问R中计算的lm()结果。您也可以将数据传递给嵌入式R进程 - 但它仍然需要RInside

另一方面,通过Rcpp构建的R扩展模块也可以访问R函数,但这样做的方式不同(周围有很多例子)。

在任何一种情况下,R 执行预测步骤将始终以R的速度执行,无论您是否使用C ++控制它。