मैं आमतौर पर एक छोटे Rcpp फ़ंक्शन के साथ काम करता हूं जो एक मैट्रिक्स के रूप में होता है जहां प्रत्येक पंक्ति में K संभाव्यताएं होती हैं जिनमें योग 1 होता है। फ़ंक्शन तब यादृच्छिक रूप से प्रत्येक पंक्ति के लिए 1 और K के बीच पूर्णांक प्रदान करता है जो प्रदान की गई संभावनाओं के अनुरूप है। यह समारोह है:
// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadilloExtensions/sample.h>
using namespace Rcpp;
// [[Rcpp::export]]
IntegerVector sample_matrix(NumericMatrix x, IntegerVector choice_set) {
int n = x.nrow();
IntegerVector result(n);
for ( int i = 0; i < n; ++i ) {
result[i] = RcppArmadillo::sample(choice_set, 1, false, x(i, _))[0];
}
return result;
}
मैंने हाल ही में आर और सभी पैकेजों को अपडेट किया है। अब मैं इस फ़ंक्शन को संकलित नहीं कर सकता। कारण मेरे लिए स्पष्ट नहीं है। चल रहा है
library(Rcpp)
library(RcppArmadillo)
Rcpp::sourceCpp("sample_matrix.cpp")
निम्न त्रुटि फेंकता है:
error: call of overloaded 'sample(Rcpp::IntegerVector&, int, bool, Rcpp::Matrix<14>::Row)' is ambiguous
यह मूल रूप से मुझे बताता है कि मेरी कॉल RcppArmadillo::sample()
अस्पष्ट है। क्या कोई मुझे बता सकता है कि ऐसा क्यों है?