如何使用RcppArmadillo绘制多项分布式样本?

Cla*_*ord 4 r armadillo rcpp

问题是我有一个变量arma::mat prob_vec,想要rmultinom(1, 1, prob_vec)在R中等效的东西.

我发现rmultinomRcppArmadillo提供的函数有一个奇怪的参数要求,它与R中的不同!所以它不会通过编译.

我只想知道如何在RcppArmadillo中绘制所需的样本,或者等效地在Armadillo中绘制.如果我需要获取指针或转换我的prob_vec变量,请告诉我如何.

非常感谢!

Dir*_*tel 6

你友好的邻居在RcppArmadillo这里的共同作者:我可以向你保证它不提供rmultinom,但Rcpp确实如此.事实上,它只是简单地传递给R本身,快速grep告诉你:

  inline void rmultinom(int n, double* prob, int k, int* rn) 
         { return ::rmultinom(n, prob, k, rn); }
Run Code Online (Sandbox Code Playgroud)

因此,我建议您首先针对R API编写一个五行C程序,以确保您知道如何rmultinom执行您想要的操作,然后使用Rcpp和RcppArmadillo对矢量中的数据执行相同的操作.

  • 非常感谢,德克!我相信你是我见过的最友好和最有帮助的(如果你认定自己)顾问. (3认同)