[R] Random number datasets help

David Winsemius dwinsemius at comcast.net
Thu Jun 18 20:22:21 CEST 2009


On Jun 18, 2009, at 1:10 PM, Alexandre Lockhart wrote:

>
> Hello:
>
> My problem is that I have a data frame of means, and a data frame of  
> standard deviations which match up to each mean.  I have been trying  
> to create 500 random numbers in a given dataset for each mean/sd  
> combination, but I am only able to generate the last value in each  
> data set to create one dataset (there should be 28 in all).   
> Examining my code, what can I change to generate 28 datasets based  
> on respective mean and sds?
>
> a1<- 
> c 
> (178.07,178.28,178.08,177.74,177.04,178.17,177.58,57.71,59.6,60.92,59.48,59.32,61.59,59.94,28.9,29.82,30.73,25.68,27.93,28.98,29.76,123.48,127.27,127.8,127.2,127.13,126.71,125.5 
> )
> a2<- 
> c 
> (1.69,1.3,1 
> ,. 
> 18,1.53,1.31,1.35,1.83,1.56,1.12 
> ,. 
> 74,1.48,1.67,1.53 
> ,.95,.87,0.03,1.12,1.95,1.22,1.04,1.64,1.83,1,1,1.08,1.35,2.37)

# the expand.grid and apply solutions have much to recommend them
# but your strategy could have worked with a few minor modifications
# initialize an array to hold the results

x <- array( , dim= c(length(a1), length(a2), 500) )

> for(i in 1:length(a1)) {
>     for(j in 1:length(a2)) {
>         x[i,j, ] <-rnorm(500,mean=a1[i],sd=a2[j])
# need to close the loop bodies
      }  }

 > str(x)
  num [1:28, 1:28, 1:500] 182 182 180 179 179 .
 > head(x)
[1] 182.4004 181.6187 180.3283 179.2654 178.5974 176.3728


David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list