Hi: Try this (and note the use of vectorization rather than a loop):
rate <- 3 dta <- -log(1 - runif(1000))/rate hist(dta, nclass = 30, probability = TRUE) x <- c(0.001, seq(0, 3, by = 0.01)) lines(x, dexp(x, rate = 3)) This is the difference in timings between the vectorized and iterative methods of generating the samples: > system.time(replicate(1000, -log(1 - runif(1000))/rate)) user system elapsed 0.10 0.00 0.09 > system.time(replicate(1000, { dt <- numeric(1000) + i <- 1 + for(i in 1:1000){ + r <- runif(1) + dt[i] <- log(1-r)/(-rate) + i <- i+1 + } })) user system elapsed 9.35 0.00 9.40 Vectorization is usually your friend in R, and it pays to use it when available. All of the d*, p*, q* and r* functions, where * denotes the suffix for a distribution, are vectorized, as are most of the functions in base R. A happy by-product is that it also makes for more easily readable code. HTH, Dennis On Tue, Apr 26, 2011 at 3:19 PM, Juanjuan Chai <ch...@umail.iu.edu> wrote: > Hi all, > > I tried to plot the density curve using the data from simulation. I am sure > that the data should be exponentially distributed, but the plot of density > curve always starts from (0,0) which is not the case for exponential > distribution. Is there any way around this, to keep the curve dropping at 0? > > Thanks. > > The following are the codes I tested: > > data <- vector() > rate <- 3 > i <- 1 > for(i in 1:1000){ > r <- runif(1) > data[i] <- log(1-r)/(-rate) > i <- i+1 > } > plot(density(data)) > > -JJ > > ______________________________________________ > R-help@r-project.org mailing list > 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 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.