On Thu, Aug 4, 2011 at 1:40 AM, Ashim Kapoor <ashimkap...@gmail.com> wrote: > > > On Thu, Aug 4, 2011 at 1:02 PM, Joshua Wiley <jwiley.ps...@gmail.com> wrote: >> >> On Thu, Aug 4, 2011 at 12:12 AM, Ashim Kapoor <ashimkap...@gmail.com> >> wrote: >> >> How would we do this problem looping over seq(1:2) ? >> >> Because this goes to an email list serv, it is good practice to quote >> the original problem. I have no idea what "this" is. >> >> >> >> >> >> > To extend the example in the corresponding nabble post : - >> > sub1<-list(x="a",y="ab") >> > sub2<-list(x="c",y="ad") >> > lst<-list(sub1=sub1,sub2=sub2) >> > for ( t in seq(1:2) ) print(lst[[t]]$y) >> > >> > So I can print out the sub1$y/sub2$y but it's not clear how to extract >> > them. >> >> Well, to extract them, just drop the call to print. You could use them >> directly in the loop or could store them in new variables. >> > >> j<- for ( t in seq(1:2) ) lst[[t]]$y >> j > NULL > > Why is j NULL ?
You are confusing how for loops work, please read the documentation for ?for > >> >> ## note seq(1:2) is redundant with simply 1:2 >> or (t in 1:2) print(nchar(lst[[t]]$y)) >> >> I am guess, though, that what you might be hoping to do is extract >> specific elements from a list and store the extract elements in a new >> list. >> >> lapply(1:2, function(i) lst[[i]]["y"]) >> ## or compare >> lapply(1:2, function(i) lst[[i]][["y"]]) >> >> > >> > My original was different though. >> > >> > How would say:- >> > >> > for ( t in seq(1:2) ) sub"t"$y >> > >> > Where sub"t" evaluates to sub1 or sub 2? >> >> if you actually want "sub1", or "sub2": >> >> ## note that I am wrapping in print() not so that it works >> ## but so that you can see it at the console >> for (t in 1:2) print(paste("sub", t, sep = '')) >> >> from which we can surmise that the following should work: >> >> for (t in 1:2) print(lst[[paste("sub", t, sep = '')]]) >> >> which trivially extends to: >> >> for (t in 1:2) print(lst[[paste("sub", t, sep = '')]]$y) >> >> or perhaps more appropriately >> >> for (t in 1:2) print(lst[[paste("sub", t, sep = '')]][["y"]]) >> >> If you just need to go one level down for *all* elements of your list >> >> lapply(lst, `[[`, "y") >> ## or if you are only retrieving a single value >> sapply(lst, `[[`, "y") >> >> Hope this helps, >> >> >> Josh >> >> > >> > Many thanks. >> > Ashim >> > >> > >> >> On Thu, Aug 4, 2011 at 10:59 AM, Richard Ma >> >> <xuanlong...@uts.edu.au>wrote: >> >> >> >>> Thank you so much GlenB! >> >>> >> >>> I got it done using your method. >> >>> >> >>> I'm just curious how did you get this idea? Cause for me, this looks >> >>> so >> >>> tricky.... >> >>> >> >>> Cheers, >> >>> Richard >> >>> >> >>> ----- >> >>> I'm a PhD student interested in Remote Sensing and R Programming. >> >>> -- >> >>> View this message in context: >> >>> >> >>> http://r.789695.n4.nabble.com/How-to-extract-sublist-from-a-list-tp3717451p3717713.html >> >>> Sent from the R help mailing list archive at Nabble.com. >> >>> >> >>> ______________________________________________ >> >>> R-help@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. >> >>> >> >> >> >> >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-help@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. >> > >> >> >> >> -- >> Joshua Wiley >> Ph.D. Student, Health Psychology >> Programmer Analyst II, ATS Statistical Consulting Group >> University of California, Los Angeles >> https://joshuawiley.com/ ______________________________________________ R-help@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.