There are also truncated normal distributions in packages truncnorm, crch, and msm. Also a multivariate truncated normal distribution in package tmvtnorm.
e.g. library(truncnorm) x <- rtruncnorm(n, a=0, mean=u, sd=a) hist(x) library(msm) x <- rtnorm(n, mean=u, sd=a, lower=0) hist(x) ------------------------------------- David L Carlson Department of Anthropology Texas A&M University College Station, TX 77840-4352 -----Original Message----- From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Rui Barradas Sent: Tuesday, September 15, 2015 12:41 PM To: ted.hard...@wlandres.net; r-help@r-project.org Cc: Chien-Pang Chin Subject: Re: [R] Beta distribution approximate to Normal distribution Hello, If you want a truncated something rng, you can use the following function. Note that 'distr' is the name of an R distribution function without the dpqr prefix. rtrunc <- function(n, distr, lower = -Inf, upper = Inf, ...){ makefun <- function(prefix, FUN, ...){ txt <- paste(prefix, FUN, "(x, ...)", sep = "") function(x, ...) eval(parse(text = txt)) } if(length(n) > 1) n <- length(n) pfun <- makefun("p", distr, ...) qfun <- makefun("q", distr, ...) lo <- pfun(lower, ...) up <- pfun(upper, ...) u <- runif(n, lo, up) qfun(u, ...) } u <- 2; a <- 3 x <- rtrunc(1000, "norm", lower = 0, mean = u, sd = a) hist(x) Hope this helps, Rui Barradas Em 15-09-2015 16:12, (Ted Harding) escreveu: > 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. > ______________________________________________ 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. ______________________________________________ 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.