Dear R Experts, Why I try to run this expression: x<-sapply(rnorm(rep(10,100000),mean=9,sd=1.5),mean) it evaluates the first 10000 values and then stops, but does not return to the command prompt. My cpu keeps running at 100%. When I exit the expression with CTL-C, I then see that x holds 10000 values. How can I evalute the expression 100000 times, or more if I want? Thanks in advance.
On 4/27/2007 7:13 PM, Robert Barber wrote:> Dear R Experts, > > Why I try to run this expression: > > x<-sapply(rnorm(rep(10,100000),mean=9,sd=1.5),mean) > > it evaluates the first 10000 values and then stops, but does not return > to the command prompt. My cpu keeps running at 100%. When I exit the > expression with CTL-C, I then see that x holds 10000 values. How can I > evalute the expression 100000 times, or more if I want?If you interrupt the calculation, then x will be unchanged. You see 10000 values there because there were 10000 values the last time you finished an assignment to x. But more importantly, I think you don't understand what your expression is calculating. If you try it with smaller numbers, bit by bit, you may be surprised: > rnorm(rep(10, 3), mean=9, sd=1.5) [1] 8.790434 8.444429 8.935716 This doesn't give you 3 sets of 10 values, it gives you one vector of 3 values. > sapply(.Last.value, mean) [1] 8.790434 8.444429 8.935716 This takes the mean of each entry: i.e. it does nothing. I doubt this is what you intended to do. I suspect what you wanted was to generate 100000 sets of 10 values, and take the mean of each set. You can do that this way: x <- replicate(100000, mean(rnorm(10, mean=9, sd=1.5))) Duncan Murdoch
try this way instead:> system.time(x <- sapply(1:100000, function(x)mean(rnorm(10, mean=9, sd=1.5))))[1] 5.44 0.00 5.95 NA NA> str(x)num [1:100000] 10.11 9.17 9.33 9.41 10.14 ...>On 4/27/07, Robert Barber <robert.barber at comcast.net> wrote:> Dear R Experts, > > Why I try to run this expression: > > x<-sapply(rnorm(rep(10,100000),mean=9,sd=1.5),mean) > > it evaluates the first 10000 values and then stops, but does not return > to the command prompt. My cpu keeps running at 100%. When I exit the > expression with CTL-C, I then see that x holds 10000 values. How can I > evalute the expression 100000 times, or more if I want? > > Thanks in advance. > > ______________________________________________ > R-help at stat.math.ethz.ch 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. >-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve?