これはすでに私を夢中にさせており、今では完全に絶望的です:(
これがマトリックスdraw
です(NAに注意しないでください。後でこれらの列が必要になります):
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 NA NA NA
[2,] 2 20 NA NA NA
[3,] 2 30 NA NA NA
[4,] 2 40 NA NA NA
[5,] 1 50 NA NA NA
[6,] 2 70 NA NA NA
[7,] 2 80 NA NA NA
[8,] 2 90 NA NA NA
[9,] 1 100 NA NA NA
[10,] 2 120 NA NA NA
[11,] 2 130 NA NA NA
[12,] 2 140 NA NA NA
したがって、列 1 に応じて、正規分布から列 3 に数値を書き込む必要があります。しかし、6% のケースでは 0 でなければなりません。
これは私がそれに対処するために考えた方法です(今ではそれは時だけですdraw[i,1]==2
):
for (i in 1:nrow(draw))
{
p <- runif(1, min=0, max=1)
if (draw[i,2]==2 && p>0.06)
{
draw[i,3] <- rnorm(1, mean=17, sd=7.5)} else {draw[i,3]<-0}
if (draw[i,1]==1) {draw[i,3] <- rnorm(1, mean=11, sd=3)}
if (draw[i,1]==3) {draw[i,3] <- rnorm(1, mean=17, sd=15)}
if (draw[i,3]<1 && draw[i,3]!=0) {draw[i,3] <- 1} else {draw[i,3] <- ceiling(draw[i,3])
}
}
そして、問題が発生します: 1. p (私が推測する乱数でなければなりません) は常に同じであることに気付きます 2. draw[1,2]==2 であるすべての draw[i,3] は 0 です。これは奇妙です。 p>0.06 の場合でも発生するため:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 19 NA NA
[2,] 2 20 0 NA NA
[3,] 2 30 0 NA NA
[4,] 2 40 0 NA NA
[5,] 1 50 11 NA NA
[6,] 2 70 0 NA NA
[7,] 2 80 0 NA NA
[8,] 2 90 0 NA NA
[9,] 1 100 7 NA NA
[10,] 2 120 0 NA NA
[11,] 2 130 0 NA NA
[12,] 2 140 0 NA NA
どうして?!なにが問題ですか?