[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