在 R 中生成多项式随机数据
Generating multinomial random data in R
我正在尝试使用函数 rmultinom 从 R 中的多项式分布生成数据,但我遇到了一些问题。
事实上,我想要一个 50 行和 20 列的数据框,结果的总和等于 3 倍 n*p。
我正在使用此代码:
p <- 20
n <- 50
N <- 3*(n*p)
prob_true <- rep(1/p, p)
a <- rmultinom(50, N, prob_true)
但我得到了一些非常奇怪的结果和一个包含 20 行和 50 列的数据框。
我该如何解决这个问题?
提前致谢!
?rmultinom
上的帮助说明 rmultinom(n, size, prob)
中的 n
是:
“要绘制的随机向量数”
而size
是:
“指定在典型的多项式实验中放入 K 个盒子的对象总数”
帮助说输出是:
“对于 rmultinom(),一个整数 K x n 矩阵,其中每一列都是根据所需的多项式法则生成的随机向量,因此求和到大小”
所以您要求 50 vectors/variables,“对象”总数等于 3000,因此每一列都绘制为总和为 3000 的向量。
colSums(a)
会导致 3000
.
你想要你的 vectors/variables 作为行吗?然后这将通过转置 a
:
来工作
t(a)
但是如果你想要 20 列,每一列都是它自己的变量,你需要切换你的 n
和 p
(我也在 n
中替换了 rmultinom
调用):
n <- 20
p <- 50
N <- 3*(n*p)
prob_true <- rep(1/p, p)
a <- rmultinom(n, N, prob_true)
我正在尝试使用函数 rmultinom 从 R 中的多项式分布生成数据,但我遇到了一些问题。 事实上,我想要一个 50 行和 20 列的数据框,结果的总和等于 3 倍 n*p。
我正在使用此代码:
p <- 20
n <- 50
N <- 3*(n*p)
prob_true <- rep(1/p, p)
a <- rmultinom(50, N, prob_true)
但我得到了一些非常奇怪的结果和一个包含 20 行和 50 列的数据框。 我该如何解决这个问题?
提前致谢!
?rmultinom
上的帮助说明 rmultinom(n, size, prob)
中的 n
是:
“要绘制的随机向量数”
而size
是:
“指定在典型的多项式实验中放入 K 个盒子的对象总数”
帮助说输出是: “对于 rmultinom(),一个整数 K x n 矩阵,其中每一列都是根据所需的多项式法则生成的随机向量,因此求和到大小”
所以您要求 50 vectors/variables,“对象”总数等于 3000,因此每一列都绘制为总和为 3000 的向量。
colSums(a)
会导致 3000
.
你想要你的 vectors/variables 作为行吗?然后这将通过转置 a
:
t(a)
但是如果你想要 20 列,每一列都是它自己的变量,你需要切换你的 n
和 p
(我也在 n
中替换了 rmultinom
调用):
n <- 20
p <- 50
N <- 3*(n*p)
prob_true <- rep(1/p, p)
a <- rmultinom(n, N, prob_true)