Scratch the rchisq (it should have been sqrt(rchisq), but that doesn't help.).
Use the truncated normal u <- 3; a <- 2; N <- 100 x <- numeric(N) for (i in 1:N){ repeat{ if( (x[i] <- rnorm(1, u, a)) >= 0 ) break } } or the folded normal abs(rnorm(N, u, a)), They give similar results. The code for the truncated normal allows you to set any truncation point. Joe (Ted Harding) <ted.hard...@wlandres.net> Sent by: "R-help" <r-help-boun...@r-project.org> 09/15/2015 11:12 AM Please respond to ted.hard...@wlandres.net To "r-help@r-project.org" <r-help@r-project.org>, cc Chien-Pang Chin <chienpan...@gmail.com> Subject Re: [R] Beta distribution approximate to Normal distribution Using non-central chi-squared (especially with df=1) is unlikely to generate random numbers anywhere near a Normal distribution (see below). And "rchisq(100, df=1, ncp=u/a)" won't work anyway with u<0, since ncp must be >= 0 (if < 0 then all are NA). Better to shoot straight for the target (truncated Normal), though several shots are likely to be required! For example (code which spells it out), taking u=3 and a=2: n <- 100 u <- 3 ; a <- 2 x <- NULL N <- length(x) while(N < n){ x <- c(x,rnorm(n,mean=u,sd=a)) x <- x[x>0] N <- length(x) } x <- x[1:n] Comparison with non-central chi-squared: y <- rchisq(100, df=1, ncp=u/a) hist(x) hist(y) On 15-Sep-2015 13:26:44 jlu...@ria.buffalo.edu wrote: > Your question makes no sense as stated. However, guessing at what you > want, you should perhaps consider the non-central chi-square density with > 1 df and ncp = u/a, i.e, > > rchisq(100, df=1, ncp=u/a) > > Joe > Joseph F. Lucke, PhD > Senior Statistician > Research Institute on Addictions > University at Buffalo > State University of New York > 1021 Main Street > Buffalo, NY 14203-1016 > > Chien-Pang Chin <chienpan...@gmail.com> > Sent by: "R-help" <r-help-boun...@r-project.org> > 09/15/2015 06:58 AM > > To > "r-help@r-project.org" <r-help@r-project.org>, > > Subject > [R] Beta distribution approximate to Normal distribution > > Hi, > I need to generate 1000 numbers from N(u, a^2), however I don't > want to include 0 and negative values. How can I use beta distribution > approximate to N(u, a^2) in R. > > Thx for help ------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@wlandres.net> Date: 15-Sep-2015 Time: 16:12:35 This message was sent by XFMail ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.