Re: [R] R: LIST function and LOOPS
Clark Allan wrote: hi thanx for the help. i dont want to use matrices. i solve my problem, see the example below. the set.seed is used because in my actual application i need to generate INDEPENDENT variables. will this ensure that the variables are independent? Why do you want to set.seed() inside the loop? Just set it once at the beginning of your simulation in order to get reproducible results - you can assume independence anyway. Or maybe I am missing the point why you are going to set.seed() inside the loop. Uwe Ligges z3-function(w) { for (i in 1:w) { ss-0 for (j in 1:5) { set.seed(j+1+(i-1)*6) r-rnorm(1) ss-ss+r a-list(ss=ss,r=r) } print(paste( i=,i,)) print(a) } } z3(3) z3(3) [1] i= 1 $ss [1] -2.213343 $r [1] 0.269606 [1] i= 2 $ss [1] -2.904235 $r [1] -1.480568 [1] i= 3 $ss [1] -0.01516304 $r [1] 0.9264592 thanx again *** allan ### ### ### ### ### ### Adaikalavan Ramasamy wrote: You will need to capture the value of ss at the end of each 'i' as such z4 -function(w){ output - numeric(w) for (i in 1:w){ set.seed(i+6) # this is redundant line ss-0 for (j in 1:5){ 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@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
Re: [R] R: LIST function and LOOPS
hi thanx for the help. i dont want to use matrices. i solve my problem, see the example below. the set.seed is used because in my actual application i need to generate INDEPENDENT variables. will this ensure that the variables are independent? z3-function(w) { for (i in 1:w) { ss-0 for (j in 1:5) { set.seed(j+1+(i-1)*6) r-rnorm(1) ss-ss+r a-list(ss=ss,r=r) } print(paste( i=,i,)) print(a) } } z3(3) z3(3) [1] i= 1 $ss [1] -2.213343 $r [1] 0.269606 [1] i= 2 $ss [1] -2.904235 $r [1] -1.480568 [1] i= 3 $ss [1] -0.01516304 $r [1] 0.9264592 thanx again *** allan ### ### ### ### ### ### Adaikalavan Ramasamy wrote: You will need to capture the value of ss at the end of each 'i' as such z4 -function(w){ output - numeric(w) for (i in 1:w){ set.seed(i+6) # this is redundant line ss-0 for (j in 1:5){ 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@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!
[R] R: LIST function and LOOPS
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@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
Re: [R] R: LIST function and LOOPS
You will need to capture the value of ss at the end of each 'i' as such z4 -function(w){ output - numeric(w) for (i in 1:w){ set.seed(i+6) # this is redundant line ss-0 for (j in 1:5){ 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@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
[R] R list
Hi Is there any function to get the name of the components of a given list object? ok. [[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
RE: [R] R list
names() is what you want, if i understand your question correctly. cheers, robert -Original Message- From: Leonardo L Miceli [mailto:[EMAIL PROTECTED] Sent: Friday, October 29, 2004 3:22 PM To: [EMAIL PROTECTED] Subject: [R] R list Hi Is there any function to get the name of the components of a given list object? ok. [[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 __ [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
RE: [R] R list
Yes, names(). Andy From: Leonardo L Miceli Hi Is there any function to get the name of the components of a given list object? ok. [[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 __ [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
Re: [R] R list
What about names() ? Giovanni Date: Fri, 29 Oct 2004 11:21:35 -0300 From: Leonardo L Miceli [EMAIL PROTECTED] Sender: [EMAIL PROTECTED] Cc: Precedence: list Hi Is there any function to get the name of the components of a given list object? ok. [[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 -- __ [ ] [ Giovanni Petris [EMAIL PROTECTED] ] [ Department of Mathematical Sciences ] [ University of Arkansas - Fayetteville, AR 72701 ] [ Ph: (479) 575-6324, 575-8630 (fax) ] [ http://definetti.uark.edu/~gpetris/ ] [__] __ [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