У меня есть функция C++:
#include <RcppArmadilloExtensions/sample.h>
using namespace Rcpp;
IntegerVector fnGender(int item, bool replace, NumericVector vSegPop,
IntegerVector vLevelsGender, NumericMatrix mGender) {
RNGScope scope;
IntegerVector ret = RcppArmadillo::sample(vLevelsGender, vSegPop(item),
replace, mGender.row(item)) ;
return ret;
}
Я использую функцию RccpArmadillo :: sample вместо базового R sample().
Когда я загружаю функцию using sourceCpp, я получаю следующую ошибку.
g++ -m64 -I"C:/Users/USER/DOCUME~1/R/R-31~1.1/include" -DNDEBUG -
I"C:/Users/USER/Documents/R/R-3.1.1/library/Rcpp/include" -
I"d:/RCompile/CRANpkg/extralibs64/local/include" -O2 -Wall -mtune=core2 -c Code.cpp -o Code.o
В духе сезона, вот ваш код с двумя изменениями, предложенными в комментариях - который отлично подходит для меня в Windows:
#include <RcppArmadilloExtensions/sample.h>
// [[Rcpp::depends(RcppArmadillo)]]
using namespace Rcpp;
// [[Rcpp::export]]
IntegerVector fnGender(int item, bool replace, NumericVector vSegPop,
IntegerVector vLevelsGender, NumericMatrix mGender) {
IntegerVector ret =
RcppArmadillo::sample(vLevelsGender, vSegPop(item),
replace, mGender.row(item)) ;
return ret;
}
Я удалил RNGScope scope;
поскольку используемая здесь инфраструктура Rcpp build автоматически добавляет ее.
// [[Rcpp::depends(RcppArmadillo)]]
в вашем коде не должно быть// [[Rcpp::depends(RcppArmadillo)]]
?