1
그래서 응용 프로그램에 RInside를 사용하려고 시도했지만이 문제를 파악할 수 없습니다. 나는이 질문을 읽고, 내가 똑같은 일을 해요 생각했습니다참조로 RInside를 전달할 수 없습니다.
pair<Rcpp::NumericVector,int> kmedoids (RInside & R, vector<int> alerts) {
R["M"] = alerts;
string txt = "library(cluster);"
"result <- clara(M, 2);";
R.parseEvalQ(txt);
Rcpp::NumericVector result((SEXP) R.parseEval("res <- result$cluster"));
Rcpp::NumericMatrix clusinfo1 ((SEXP) R.parseEval("clusinfo <- result$clusinfo"));
int biggerCluster = getBiggerCluster(clusinfo1);
pair <Rcpp::NumericVector,int> par;
par.first = result;
par.second = biggerCluster;
return par;
}
RInside R(int argc, char *argv[]);
pair<Rcpp::NumericVector,int> srcIPKmedoid = kmedoids(R, srcIPAmounts);
pair<Rcpp::NumericVector,int> dstIPKmedoid = kmedoids(R, dstIPAmounts);
pair<Rcpp::NumericVector,int> attackClassKmedoid = kmedoids(R, attackClassAmounts);
나는 오류 : Passing RInside's 'R' instance as a parameter between classes/methods
을하지만, 어떻게 든이 작동하지 않는 경우, 여기에 코드의 샘플입니다 점점 :
/home/renato/workspace/tilera/oads/AM/src/AM.cpp:442:73: error: invalid initialization of non-const reference of type ‘RInside&’ from an rvalue of type ‘RInside (*)(int, char**)’
/home/renato/workspace/tilera/oads/AM/src/AM.cpp:302:31: error: in passing argument 1 of ‘std::pair<Rcpp::Vector<14>, int> kmedoids(RInside&, std::vector<int>)’
/home/renato/workspace/tilera/oads/AM/src/AM.cpp:443:73: error: invalid initialization of non-const reference of type ‘RInside&’ from an rvalue of type ‘RInside (*)(int, char**)’
/home/renato/workspace/tilera/oads/AM/src/AM.cpp:302:31: error: in passing argument 1 of ‘std::pair<Rcpp::Vector<14>, int> kmedoids(RInside&, std::vector<int>)’
/home/renato/workspace/tilera/oads/AM/src/AM.cpp:444:85: error: invalid initialization of non-const reference of type ‘RInside&’ from an rvalue of type ‘RInside (*)(int, char**)’
/home/renato/workspace/tilera/oads/AM/src/AM.cpp:302:31: error: in passing argument 1 of ‘std::pair<Rcpp::Vector<14>, int> kmedoids(RInside&, std::vector<int>)’
Dirk의 Qt 예제가 수행하는 것과 같이 RInside를 참조로 전달하고 있는데, 내가 뭘 잘못하고있는 걸까요?
미리 감사드립니다.