[R] help on setting boundaries for generating random numbers

arun smartpink111 at yahoo.com
Sat Sep 1 17:51:07 CEST 2012


Hi,
May be this might help you.
set.seed(1)
 a <-rlnorm(500,0.7,1)
 a1<-a[a>30|a<0.5]
set.seed(2)
a2 <-rlnorm(500,0.7,1)
a3<-a2[a2>30|a2<0.5]
a4<-a2[!a2%in%a3]
summary(a4)
#   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
# 0.5105  1.2500  2.2990  3.6850  4.7140 25.3600 

a[a%in%a1]<-sample(a4,length(a[a%in%a1]),replace=FALSE)
summary(a)
#   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
# 0.5044  1.2900  2.1310  3.5320  4.1510 28.4800 
 a[a>30|a<0.5]
#numeric(0)
A.K.




----- Original Message -----
From: Andras Farkas <motyocska at yahoo.com>
To: "r-help at r-project.org" <r-help at r-project.org>
Cc: 
Sent: Saturday, September 1, 2012 5:29 AM
Subject: [R] help on setting boundaries for generating random numbers

Dear All,
 
is there a way to set low and high limits to a simulation with rlnorm()? 
 
as an example:
 a <-rlnorm(500,0.7,1)
 
 
I get the summary of
 
Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.1175  1.0590  2.1270  3.4870  4.0260 45.3800  

I would like to set limits so that the simulated values minimum would be greater then 0.5 and maximum of less than 30. If during simulation a value outside of the limits would be simulated, then I would like R to "throw that value out" and go back to generate another random number instead that would fit the limits criteria. 
 
Apreciate all the help on this,
 
Sincerely,
 
Andras
    [[alternative HTML version deleted]]


______________________________________________
R-help at 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.





More information about the R-help mailing list