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

r - Creating Data Frame in C++ for predict() input in Rcpp

本文关键字:输入 创建 数据帧 predict 中的 C++ 中为 Rcpp      更新时间:2023-10-16

假设我们有一个回归模型,它将名为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); 

您可能会混淆Rcpp(它确实为您创建了data.frame对象)和RInside(它允许您计算表达式)。

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

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

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