Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中创建数据帧+;对于Rcpp中的predict()输入_C++_R_Rcpp - Fatal编程技术网

C++ 在C+中创建数据帧+;对于Rcpp中的predict()输入

C++ 在C+中创建数据帧+;对于Rcpp中的predict()输入,c++,r,rcpp,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 = "p

假设我们有一个回归模型,该模型将名为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::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\””;
向量prob_向量reg_输出=R.parseval(cmd2);

您可能会混淆
Rcpp
——它确实为您创建了
data.frame
对象,而
RInside
允许您计算表达式

<> >看<代码>示例/Sturnal/RunSID.SAMP3.3.CPP<代码> >代码> RIN < /Cord>示例:它显示您访问C++中的代码> LME()/Realth> R.通过Rin计算的结果。您同样可以将数据传递给嵌入式R进程——但它仍然需要
RInside

另一方面,通过
Rcpp
构建的R扩展模块也可以访问R函数,但实现方式不同(这里有很多示例)


无论是哪一种情况,R的预测步的执行总是以R的速度进行,无论你是否从C++控制。我在examples/standard/rinside_sample3.cpp中有一个问题。在这个例子中,我们有“SWISSUM”来查看其他的例子。简单的如<代码> R[VARR ] = VARCpp;< /COD> >代码> VARCPU> /Cord>是一个C++对象,将被分配给R对象<代码> VARR 。