bt0213 如何生成混合正态的随机数? <br /> 0.3*N(0,1)+0.7*N(3,2)<br /> 这样可以吗? <br /> x<-c(rnorm(30,0,1),rnorm(70,3,2))<br />
bt0213 <br /> y<-runif(100,0,1)<br /> x<-rep(100)<br /> for(i in 1:100)<br /> {<br /> if(y[i]<0.3)<br /> {<br /> x[i]<-rnorm(1,0,1)<br /> }<br /> else<br /> {<br /> x[i]<-rnorm(1,3,2)<br /> }<br /> }<br /> 不知道这样产生对不。
karlqi 如果你指的是0.3*N(0,1)+0.7*N(3,2),那么 n<-100 rng <- 0.3*rnorm(n,0,1)+0.7*rnorm(n,3,sqrt(2)) 如果你指的是p*N(0,1)+(1-p)*N(3,2),p\in [0,1],那么 n<-100 p<-rbinom(n,size = 1, prob = 0.3) rng <-p*rnorm(n,0,1)+(1-p)*rnorm(n,3,sqrt(2))