从 C++ 调用 r 脚本无法将 Rcpp::CharacterVector 转换为 const char*
call r script from c++ gives cannot convert Rcpp::CharacterVector to const char*
有没有办法从 C++ 调用 r 脚本?
我有一个 rscript ,例如:
myScript.R:
runif(100)
我想从 C++ 执行此脚本并传递结果。
我试过了:
#include <Rcpp.h>
#include <iostream>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector loadFile(CharacterVector inFile){
NumericVector one = system(inFile);
return one;
}
inFile : "C:/Program Files/R/R-3.4.2/bin/x64/Rscript C:/Rscripts/myScript.R"
但它给了我:
cannot convert Rcpp::CharacterVector (aka Rcpp::Vector<16>} to const char* for argument 1 to int system(const char*)
通常的约定是使用 Rcpp 以便在 R 中编写昂贵的 C++ 代码。
如果您想从 c++ 中调用 R 脚本,然后处理结果,一种方法是使用 popen 函数。
要了解如何将 rcpp 字符转换为 std::string,请参阅 Converting element of 'const Rcpp::CharacterVector&' to 'std::string'
示例:
std::string r_execute = "C:/Program Files/R/R-3.4.2/bin/x64/Rscript C:/Rscripts/myScript.R"
FILE *fp = popen(r_execute ,"r");
您应该能够从文件流中读取操作结果。
有没有办法从 C++ 调用 r 脚本?
我有一个 rscript ,例如:
myScript.R:
runif(100)
我想从 C++ 执行此脚本并传递结果。
我试过了:
#include <Rcpp.h>
#include <iostream>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector loadFile(CharacterVector inFile){
NumericVector one = system(inFile);
return one;
}
inFile : "C:/Program Files/R/R-3.4.2/bin/x64/Rscript C:/Rscripts/myScript.R"
但它给了我:
cannot convert Rcpp::CharacterVector (aka Rcpp::Vector<16>} to const char* for argument 1 to int system(const char*)
通常的约定是使用 Rcpp 以便在 R 中编写昂贵的 C++ 代码。
如果您想从 c++ 中调用 R 脚本,然后处理结果,一种方法是使用 popen 函数。
要了解如何将 rcpp 字符转换为 std::string,请参阅 Converting element of 'const Rcpp::CharacterVector&' to 'std::string'
示例:
std::string r_execute = "C:/Program Files/R/R-3.4.2/bin/x64/Rscript C:/Rscripts/myScript.R"
FILE *fp = popen(r_execute ,"r");
您应该能够从文件流中读取操作结果。