2013-02-13 15 views
6

To może być bardzo łatwe pytanie, ale naprawdę nie mogę go znaleźć. Jak mogę próbkować losową liczbę całkowitą od 1 do N w Rcpp? Wiem, że mogę wypróbować jednolity numer i zaokrąglić go lub włączyć funkcję sample do użycia w kodzie C++, ale oba nie wydają się być prawidłowym sposobem wykonania tego.Próbka losowa liczba całkowita w Rcpp

+0

Myślę, że jest to akceptowalny sposób pobierania próbek równomiernie i okrągłych (o ile prawdopodobieństwa dla 1 i N są takie same jak dla wszystkich innych wartości pomiędzy) –

+0

http://dirk.eddelbuettel.com/blog/ 2012/09/02 / – Andrie

Odpowiedz

6
  1. AFIACR nie mieć "przyzwoitą" (tj wektoryzowane) sample() funkcję w RCPP-land, ale Christian Gunning pracuje na jednym oparciu o Armadillo poprzez RcppArmadillo.

  2. Możesz oczywiście pobrać próbkę od U (0,1), skali do N i reszty. Mamy R::runif() dla przypadku skalarnego i runif() w cukrze, który jest wektorowy.

Edit: Począwszy od 2017 roku, zarówno RcppArmadillo i RCPP teraz mają sample() funkcję.