OK, that looks a good suggestion. Though it is a bit of a step towards loops and counting ...
Thanks a lot. Regards JS -----Original Message----- From: Gabor Grothendieck [mailto:[EMAIL PROTECTED] Sent: Tue 2/5/2008 4:51 PM To: john seers (IFR) Cc: R Help Subject: Re: [R] Using lapply and list names not available If you must use lapply then do it over the names rather than the data: lapply(names(people), function(nm) plot(1:10, people[[nm]], main = nm)) On Feb 5, 2008 11:47 AM, john seers (IFR) <[EMAIL PROTECTED]> wrote: > > > Hi Gabor > > Thanks for the suggestion but I am not sure it actually addresses my > problem. I will ponder the idea of my data needing to be in a different > form but I am not sure how to get there easily with what I have got. > > The example I gave was just a simplified example to demonstrate how you > cannot access the names of the list once it has been passed by lapply. > My real world problem is data coming from 4 spreadsheets for thirteen > volunteers and 250 variables with various models being calculated and > values extracted from the models. > > lapply seems to be the way to do these repetitive processes on the data, > volunteers etc but then I end up with a load of lists of lists. I guess > I could extract the data from the lists into a more suitable format for > plotting but as lapply has already done all the work it seems a lot of > extra effort. I would like to be able to do one more lapply to plot the > data (or whatever) and be able to slap a label on it so I can keep track > of what I am doing. > > Regards > > John Seers > > > > > -----Original Message----- > From: Gabor Grothendieck [mailto:[EMAIL PROTECTED] > Sent: 05 February 2008 16:17 > To: john seers (IFR) > Cc: R Help > Subject: Re: [R] Using lapply and list names not available > > The problem is your data is in wide format and you want it in long > format. > See ?reshape and also see the reshape package. In your example, ?stack > is sufficient: > > library(lattice) > xyplot(values ~ seq_along(values) | ind, data = stack(people)) > > > On Feb 5, 2008 11:05 AM, john seers (IFR) <[EMAIL PROTECTED]> > wrote: > > > > Hello All > > > > Using lapply and ending up with lists of lists I often end up in the > > position of not having the names of the list passed by lapply. So, if > > I am doing something like a plot, and I would like the title to > > reflect which plot it is, I cannot easily do it. So I find myself > > doing some unstructured variable passing and counting to be able to > > keep track of my data. Then I think perhaps I should not use lapply > > and just use simple loops. > > > > Is there a better way to do this? > > > > Here is a simple example to illustrate what I am talking about. The > > list has the names of people and I need the names to use as the > > headings of the plots. > > > > > > > > ###################################################################### > > ## > > ######### > > > > # Make some test data > > people<-list(Andrew=rnorm(10), Mary=rnorm(10), Jane=rnorm(10), > > Richard=rnorm(10)) > > > > > > # Function to plot each list entry with its title name > > doplot<-function(individual, peoplenames) { > > peoplecount<<-peoplecount + 1 > > plot(individual, main=peoplenames[peoplecount]) } > > > > # > > peoplecount<-0 > > jpeg(file="test.jpg") > > par(mfrow=c(2,2)) > > lapply(people, doplot, names(people)) > > dev.off() > > > > ###################################################################### > > ## > > ############# > > > > > > Thank you for any suggestions. > > > > > > John Seers > > > > --- > > > > ______________________________________________ > > 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. > > > ______________________________________________ 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.