Hello, I'm trying to run a loop that will subset my data into specific sets by regions and by race/ethnicity. I'm trying to do this fairly compactly, and I cannot get this to work. A "simple" version of the code that I am trying to run is: names <- c("white", "black", "asian", "hispanic") for(j in names){ for(i in 1:9){ names.cd[i].es.wash <- 1 es.cd[i].names.w <- names.cd[i].es.wash +1 } ; } I want the loop to create these variables so that I would have for example: "white.cd1.es.wash" through "white.cd9.wash" and then the same for black, hispanic, and asian (However, none of these variables have been created yet outside of the loop) When I try to run this, I get the following error message: Error: unexpected symbol in: "for(i in 1:9){ names.cd[i].es.wash" Any idea what I am doing wrong? Thanks in advance for your help! I am still trying to get my hands around this programming syntax -- View this message in context: http://old.nabble.com/Complicated-For-Loop-%28to-me%29-tp26269479p26269479.html Sent from the R help mailing list archive at Nabble.com.
Have a look at ?split Hadley On Mon, Nov 9, 2009 at 10:41 AM, agm. <amurray at vt.edu> wrote:> > Hello, > > I'm trying to run a loop that will subset my data into specific sets by > regions and by race/ethnicity. ?I'm trying to do this fairly compactly, and > I cannot get this to work. > > A "simple" version of the code that I am trying to run is: > > names <- c("white", "black", "asian", "hispanic") > for(j in names){ > for(i in 1:9){ > names.cd[i].es.wash <- 1 > es.cd[i].names.w <- names.cd[i].es.wash +1 > } ; } > > I want the loop to create these variables so that I would have for example: > "white.cd1.es.wash" through "white.cd9.wash" and then the same for black, > hispanic, and asian > > (However, none of these variables have been created yet outside of the loop) > > > When I try to run this, I get the following error message: > > Error: unexpected symbol in: > "for(i in 1:9){ > names.cd[i].es.wash" > > Any idea what I am doing wrong? ?Thanks in advance for your help! ?I am > still trying to get my hands around this programming syntax > > -- > View this message in context: http://old.nabble.com/Complicated-For-Loop-%28to-me%29-tp26269479p26269479.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help at r-project.org 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. >-- http://had.co.nz/
You're looking for the assign() function. See the first example in the help page for assign() Something like assign( paste( j,'.cd',i,'es.wash',sep='') , 1 ) instead of names.cd[i].es.wash <- 1 paste() assembles the name as a character string, and then assign() assigns a value to a variable with that name. -Don At 8:41 AM -0800 11/9/09, agm. wrote:>Hello, > >I'm trying to run a loop that will subset my data into specific sets by >regions and by race/ethnicity. I'm trying to do this fairly compactly, and >I cannot get this to work. > >A "simple" version of the code that I am trying to run is: > >names <- c("white", "black", "asian", "hispanic") >for(j in names){ >for(i in 1:9){ >names.cd[i].es.wash <- 1 >es.cd[i].names.w <- names.cd[i].es.wash +1 >} ; } > >I want the loop to create these variables so that I would have for example: >"white.cd1.es.wash" through "white.cd9.wash" and then the same for black, >hispanic, and asian > >(However, none of these variables have been created yet outside of the loop) > > >When I try to run this, I get the following error message: > >Error: unexpected symbol in: >"for(i in 1:9){ >names.cd[i].es.wash" > >Any idea what I am doing wrong? Thanks in advance for your help! I am >still trying to get my hands around this programming syntax > >-- >View this message in context: >http://*old.nabble.com/Complicated-For-Loop-%28to-me%29-tp26269479p26269479.html >Sent from the R help mailing list archive at Nabble.com. > >______________________________________________ >R-help at r-project.org 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.-- -------------------------------------- Don MacQueen Environmental Protection Department Lawrence Livermore National Laboratory Livermore, CA, USA 925-423-1062