我必须为两组大小为N的向量生成随机数.
一组的概率是p,另一组的概率是q = 1-p.(例如,对于p = 0.5的1000个群体,我必须从分布中生成500个随机数,从另一个生成500个随机数).由于这是一个我必须改变'p'的模拟,我编写了我的代码来生成如下:
group1 = rnorm(n = N*p)
group2 = rnorm(n = N*q) # 1st method
group2 = rnorm(n = (N - N*p)) # 2nd method
Run Code Online (Sandbox Code Playgroud)
使用上述两种方法,R产生的随机数少于它在group2的几行中的应用数量(第一行约占35%,第二种约占12%).
我遇到了与rexp,rpois和runif相同的错误.
以下是两种方法的快照供您参考.
#### EXAMPLE SCRIPT #####
N = 1000
p1 = seq(0.01, 0.99, 0.001)
q1 = 1 - p1
### FIRST METHOD ###
X = data.frame()
for (i in 1:length(p1))
{
X[i, 1] = p1[i]
X[i, 2] = q1[i]
X[i, 3] = length(runif((N * X[i, 1])))
X[i, 4] = length(runif((N …
Run Code Online (Sandbox Code Playgroud)