1
使用RcppArmadillo :: sample函數時,我發現使用大輸入向量會導致RStudio崩潰。我提供以下全部代碼:RcppArmadillo ::示例函數導致RStudio和R崩潰
#include<iostream>
#include <armadillo>
#include <RcppArmadilloExtensions/sample.h>
//[[Rcpp::depends(RcppArmadillo)]]
using namespace std;
using namespace Rcpp;
using namespace arma;
//[[Rcpp::export]]
IntegerVector test_func(int N) {
IntegerVector frame = Range(1, N);
NumericVector wts = runif(N, 0, 1);
NumericVector Wts = wts/sum(wts);
IntegerVector y = RcppArmadillo::sample(frame, N,TRUE, Wts);
return y;
}
調用test_func(N=100)
會產生正確的結果。但N大於200,例如test_func(N=210)
,會導致RStudio以及RConsole崩潰。我正在犯錯誤嗎?
我在Mac OS X 10.9.2版本上使用R 3.0.3「Warm Puppy」。然而,現在我更新到R 3.1.0「Sun Dance」,並且我收到了錯誤信息「Walker Alias method not implemented」,這是我以前沒有在「Warm Puppy」中找到的。謝謝你的提示! – NightOwl85
我非常確信你之前只是在Rcpp和RcppArmadillo之間有一個不匹配的地方---一個地方重建,一個沒有。這是行不通的,因此觸發的異常使您的會話失效。 sample()現在是「舊」的,並且在每個版本中都進行了單元測試。 –