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

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

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

非常感谢!

最佳答案

RcppArmadillo 的友好社区合著者:我可以向您保证,它不提供 rmultinom ,但 Rcpp 提供。事实上,它只是传递给 R 本身,就像一个快速的 grep 会告诉你的那样:

  inline void rmultinom(int n, double* prob, int k, int* rn)
         { return ::rmultinom(n, prob, k, rn); }

所以我建议你首先针对 R API 编写一个五行 C 程序,以确保你知道如何让 rmultinom 做你想做的事,然后使用 Rcpp 和 RcppArmadillo 对你的数据做同样的事情。向量。

关于r - 如何使用 RcppArmadillo 绘制多项分布样本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14653336/

10-12 16:30