在Rcpp中随机抽取一个整数样本

9

这可能是一个非常简单的问题,但我确实找不到答案。如何在Rcpp中随机采样1到N之间的整数?我知道我可以采样一个均匀分布的数字并四舍五入,或者在C++代码中包含sample函数,但这些方法似乎都不是正确的做法。


我认为这是一种可接受的方法,可以均匀采样并四舍五入(只要1和N的概率与中间所有其他值的概率相同)。 - Daniel Fischer
http://dirk.eddelbuettel.com/blog/2012/09/02/ - Andrie
1个回答

8
  1. 据我所知,Rcpp领域中并没有一个“体面的”(即矢量化的)sample()函数,但是Christian Gunning正在开发一个基于Armadillo和RcppArmadillo的函数。

  2. 当然,你可以从U(0,1)中进行采样,将其缩放到N并进行其他操作。我们在标量情况下使用R::runif(),糖中使用矢量化的runif()函数。

编辑:截至2017年,RcppArmadillo和Rcpp都有一个sample()函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接