在R中生成多项式随机数据
我试图使用函数rmultinom从R中的多项式分布生成数据,但我遇到了一些问题。 事实上,我想要一个50行20列的数据框,结果的总和等于3乘以n*p 我正在使用以下代码:在R中生成多项式随机数据,r,random,simulation,multinomial,R,Random,Simulation,Multinomial,我试图使用函数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) p在?rmultinom上提供的帮助说明rmultinom(n,size,prob)中的n是: “要绘制的随机向量数” 而
p <- 20
n <- 50
N <- 3*(n*p)
prob_true <- rep(1/p, p)
a <- rmultinom(50, N, prob_true)
p在?rmultinom
上提供的帮助说明rmultinom(n,size,prob)
中的n
是:
“要绘制的随机向量数”
而size
是:
“指定在典型多项式实验中放入K个框中的对象总数”
帮助说明输出为:
对于rmultinom(),是一个整数K x n矩阵,其中每列都是根据所需多项式定律生成的随机向量,因此求和为大小
因此,您需要50个向量/变量,其中“对象”的总数等于3000,因此每列被绘制为一个向量,总和为3000
colSums(a)
确实会导致3000
是否希望向量/变量作为行?那么,只需将a
转置即可:
t(a)
但是如果您想要20列,每个列都是它自己的变量,那么您需要切换n
和p
(我还在rmultinom
调用中的n
子目录中):
n
n <- 20
p <- 50
N <- 3*(n*p)
prob_true <- rep(1/p, p)
a <- rmultinom(n, N, prob_true)