Я создал NumericVector, и мне нужно пробовать одно случайное целое из него. Я пытался использовать различные функции RcppArmarillo, но мне это не помогло. Эта функция приведена ниже:Rcpp R эквивалент образца от NumericVector
//#include <algorithm>
#include <RcppArmadilloExtensions/sample.h>
using namespace Rcpp;
using namespace arma;
using namespace std;
int simulateNextStepC(double currentAmount, double lastPaid, int currentStatus, int currentMaturity, NumericMatrix amountLinkMatrix, NumericMatrix statusMatrix, double percentile4Capping=1, bool verbose=false)
{
int nrow = amountLinkMatrix.nrow(), outsize;
bool check;
LogicalVector positionsToSample(nrow);
for(int i=0;i< nrow;i++) {
check=false;
check=((statusMatrix(i,currentMaturity)==currentStatus)&&(is_finite(statusMatrix(i,currentMaturity+1))));
positionsToSample[i]=check;
}
outsize=sum(positionsToSample);
IntegerVector historicalStatus(max(outsize,1));
int out;
if(outsize==0)
out=currentStatus;
else {
for(int i=0, j=0; i<nrow; i++) {
if(positionsToSample[i]){
historicalStatus[j]=statusMatrix(i,currentMaturity+1);
j++;
}
}
out=RcppArmadillo::sample(historicalStatus,1); // SAMPLING HERE
};
возвращение; }