[R] Random number datasets help

Marc Schwartz marc_schwartz at me.com
Thu Jun 18 22:23:06 CEST 2009


Quite true Jim, however I focused on his request and not his code,  
presuming that he did not realize what he was doing as a consequence  
of the nested loops.

Perhaps Alexandre can provide clarification?

Regards,

Marc

On Jun 18, 2009, at 2:46 PM, jim holtman wrote:

> That is not what his 'for' loops are doing.  He is iterating through  
> all
> combinations and would have created 784.  So his problem statement  
> did not
> match the code that he sent.
>
> On Thu, Jun 18, 2009 at 2:12 PM, Marc Schwartz  
> <marc_schwartz at me.com> wrote:
>
>> Alexandre did say 28 datasets, not 784 (28 * 28)....
>>
>> Thus, either:
>>
>> mapply(rnorm, n = 500, mean = a1, sd = a2)
>>
>> or
>>
>> apply(cbind(a1, a2), 1, function(x) rnorm(500, x[1], x[2]))
>>
>>
>> HTH,
>>
>> Marc Schwartz
>>
>> On Jun 18, 2009, at 12:51 PM, Henrique Dallazuanna wrote:
>>
>> Try this also:
>>>
>>> a <- expand.grid(a1, a2)
>>> x <- mapply(rnorm, n = 500, mean = a[,1], sd = a[,2])
>>>
>>> On Thu, Jun 18, 2009 at 2:10 PM, Alexandre Lockhart <
>>> alexandre_georges at hotmail.com> 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)
>>>> for(i in 1:length(a1))
>>>> for(j in 1:length(a2))
>>>>     x<-rnorm(500,mean=a1[i],sd=a2[j])
>>>>
>>>> Thank you,
>>>>
>>>> Agl




More information about the R-help mailing list