Hi:
Let's assume the lengths of each vector are the same so that they can be
multiplied. Here's the timing on my machine:
> system.time(replicate(1000, { prob<-numeric(1000)
+
+ for (n in 1:1000) {
+ task1 <- runif(1, min=0.8, max= 0.9)
+ task2 <- runif(1, min=0.75, max= 0.85)
+ task3 <- runif(1, min=0.81, max= 0.89)
+ prob[n]<-task1*task2*task3
+ }
+ }))
user system elapsed
16.96 0.01 17.19
> system.time(replicate(1000, {
+ task1 = runif(1000, min = 0.8, max = 0.9)
+ task2 <- runif(1000, min = 0.75, max = 0.85)
+ task3 <- runif(1000, min = 0.81, max = 0.89)
+ prob <- task1 * task2 * task3 } ))
user system elapsed
0.37 0.00 0.39
Dennis
On Mon, Apr 11, 2011 at 1:42 AM, Ivan Calandra <[email protected]
> wrote:
> Hi,
>
> I think you can do this without a loop (well, replicate() is based on
> sapply()):
> prob<-numeric(1000)
> task1 <- replicate(1000,runif(1, min=0.8, max= 0.9))
> task2 <- replicate(1000,runif(1, min=0.75, max= 0.85))
> task3 <- replicate(1000,runif(1, min=0.81, max= 0.89))
> prob <- task1*task2*task3
>
> It might not be faster, but I don't think it can be slower. And I find the
> code easier and clearer.
> Please correct me if this is not equivalent.
>
> HTH,
> Ivan
>
>
> Le 4/11/2011 01:06, Daniel Malter a écrit :
>
> The loop is correct, you just need to make sure that your result is
>> computed
>> and stored as the n-th element that is returned by the loop. Pick up any
>> manual of R, and looping will be explained there. Also, I would recommend
>> that you draw a random number for every iteration of the loop. Defining
>> the
>> random vectors outside the loop make sense to me only if they are the same
>> length as n.
>>
>> prob<-numeric(1000)
>>
>> for (n in 1:1000) {
>> task1<- runif(1, min=0.8, max= 0.9)
>> task2<- runif(1, min=0.75, max= 0.85)
>> task3<- runif(1, min=0.81, max= 0.89)
>> prob[n]<-task1*task2*task3
>> }
>>
>> If you wanted to store the individual probabilities (task1..3), you would
>> proceed accordingly by defining them outside the loop and storing the
>> value
>> in the loop as the n-th element of that vector just like for prob.
>>
>> HTH,
>> Daniel
>>
>> --
>> View this message in context:
>> http://r.789695.n4.nabble.com/Help-with-basic-loop-tp3440190p3440607.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> [email protected] 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.
>>
>>
> --
> Ivan CALANDRA
> PhD Student
> University of Hamburg
> Biozentrum Grindel und Zoologisches Museum
> Abt. Säugetiere
> Martin-Luther-King-Platz 3
> D-20146 Hamburg, GERMANY
> +49(0)40 42838 6231
> [email protected]
>
> **********
> http://www.for771.uni-bonn.de
> http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php
>
>
> ______________________________________________
> [email protected] 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.
>
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.