From: Adaikalavan Ramasamy <ramasamy_at_cancer.org.uk>

Date: Fri 11 Mar 2005 - 02:29:34 EST

}

for(i in 1:w) out[i, 1:out.lengths[i] ] <- tmp[[i]]

R-help@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 Received on Fri Mar 11 02:32:51 2005

Date: Fri 11 Mar 2005 - 02:29:34 EST

You will need to capture the value of ss at the end of each 'i' as such

set.seed(i+6) # this is redundant line ss<-0

set.seed(j+1+(i-1)*6) r<-rnorm(1) ss<-ss+r

}

output[i] <- ss

}

return(output)

}

BTW, I do not think it is a good idea to set.seed() so many times.

To answer you more general question, see if the following is useful. I am trying to simulate 'n' values from a standard normal distribution but 'n' is random variable itself.

f <-function(w, lambda=3){

tmp <- list(NULL)

for (i in 1:w){

n <- 1 + rpois(1, lambda=lambda) # number of simulation required
tmp[[ i ]] <- rnorm(n)

}

# flatten the list into a ragged matrix

out.lengths <- sapply(tmp, length) out <- matrix( nr=w, nc=max( out.lengths ) ) rownames(out) <- paste("w =", 1:w)

for(i in 1:w) out[i, 1:out.lengths[i] ] <- tmp[[i]]

return(out)

}

f(6, lambda=3)

It is not very elegant but I hope that helps you out somehow.

Regards, Adai

On Thu, 2005-03-10 at 10:16 +0200, Clark Allan wrote:

> hi all

*>
**> another simple question.
**>
**> i've written a dummy program so that you get the concept. (the code
**> could be simplfied such that there are no loops. but lets leave the
**> loops in for now.)
**>
**> z1<-function(w)
**> {
**> for (i in 1:w)
**> {
**> set.seed(i+6)
**> ss<-0
**> for (j in 1:5)
**> {
**> set.seed(j+1+(i-1)*6)
**> r<-rnorm(1)
**> ss<-ss+r
**> }
**> list(ss=ss)
**> }
**> }
**> check.1<-z1(3)
**> check.1
**>
**> the results is:
**> $ss
**> [1] -0.01516304
**>
**>
**> what i want is something that looks like this:
**>
**> j=1
**> $ss
**> [1] -2.213343
**>
**> j=2
**> $ss
**> [1] -2.904235
**>
**> j=3
**> $ss
**> [1] -0.01516304
**>
**>
**> i know that i could use the print command. (see z2)
**>
**> z2<-function(w)
**> {
**> for (i in 1:w)
**> {
**> set.seed(i+6)
**> ss<-0
**> for (j in 1:5)
**> {
**> set.seed(j+1+(i-1)*6)
**> r<-rnorm(1)
**> ss<-ss+r
**> }
**> print(ss)
**> }
**> }
**> check.2<-z2(3)
**> check.2
**>
**> > check.2<-z2(3)
**> [1] -2.213343
**> [1] -2.904235
**> [1] -0.01516304
**> > check.2
**> [1] -0.01516304
**>
**> the problem with z2 is that only the last value is saved.
**>
**>
**> what i could do is use matrices like the following: (but i dont want to
**> do this AND WOULD PREFER TO USE list.)
**>
**> z3<-function(w)
**> {
**> results.<-matrix(nrow=w,ncol=1)
**> colnames(results.)<-c("ss")
**> for (i in 1:w)
**> {
**> set.seed(i+6)
**> ss<-0
**> for (j in 1:5)
**> {
**> set.seed(j+1+(i-1)*6)
**> r<-rnorm(1)
**> ss<-ss+r
**> }
**> results.[i,1]<-ss
**> }
**> results.
**> }
**> check.3<-z3(3)
**> check.3
**>
**> > check.3
**> ss
**> [1,] -2.21334260
**> [2,] -2.90423463
**> [3,] -0.01516304
**>
**> what if i have a new program (something different) and i want the
**> following:
**>
**> j=1
**> $a
**> 1
**> 2
**> 3
**>
**> $b
**> 1
**> 2
**> 3
**> 4
**> 5
**>
**> $c
**> 1
**>
**>
**> ###############
**> j=2
**> $a
**> 11
**> 21
**> 31
**>
**> $b
**> 11
**> 21
**> 31
**> 41
**> 51
**>
**> $c
**> 11
**>
**> ###############
**> j=3
**> $a
**> 21
**> 22
**> 32
**>
**> $b
**> 21
**> 22
**> 32
**> 42
**> 52
**>
**> $c
**> 21
**>
**> MATRICES SEEMS TO BE A GOOD WAY OF DOING THIS (but then you would have
**> to set up three matrices, one for a,b and c). BUT WHAT IF I WANT TO USE
**> THE LIST FUNCTION? i.e. there is a list in the first loop that i want to
**> display!
**>
**> sorry for the long mail.
**>
**> ***
**> ALLAN
**> ______________________________________________ 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
*

R-help@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 Received on Fri Mar 11 02:32:51 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:30:42 EST
*