Regarding the averages, someone else mentioned that it's preferred to start a new question in a new post to the list.
That said, you are confusing "inside" the list with "outside" the list. Try this: (the following R expression is supposed to be all on one line, but my email software may cause a line break) myavgs <- lapply(mylist2, function(e) {cbind( e, avgs=rowSums(e)/12)} ) With no example data I can't test it. The brackets {} are not, strictly speaking, necessary, but I think they help clarify what is inside the function with what is outside it. -- Don MacQueen Lawrence Livermore National Laboratory 7000 East Ave., L-627 Livermore, CA 94550 925-423-1062 On 3/30/15, 8:19 AM, "Vikram Chhatre" <crypticline...@gmail.com> wrote: >First of all, thank you for all the quick replies. Here is a solution >that >worked for me. > >mylist2 <- lapply(mylist, function(e){colnames(e) <- paste0('pop',1:12); >return(e)}) > >> head(mylist2[[1]]) > pop1 pop2 pop3 pop4 pop5 pop6 pop7 pop8 pop9 pop10 pop11 >pop12 >L0001.1 0.60 0.500 0.325 0.675 0.600 0.500 0.500 0.375 0.550 0.475 0.350 >0.275 >L0001.2 0.40 0.500 0.675 0.325 0.400 0.500 0.500 0.625 0.450 0.525 0.650 >0.725 > >While we are at this, I wanted to create a 13th column in each data frame >for average of each row. > ># Calculate average >myavg <- lapply(mylist2, function(e) rowSums(mylist2)/12) > ># Attach to the main data frame >mylist3 <- cbind(mylist2, myavg) > >This does not work the way I imagined it would. The myavg vector is >attached directly to mylist2, not to individual dataframes within. > >p.s. Is it a standard convention to always copy the reply to the last >person who responded? > >On Mon, Mar 30, 2015 at 10:56 AM, Sven E. Templer <sven.temp...@gmail.com> >wrote: > >> On 30 March 2015 at 16:47, Sarah Goslee <sarah.gos...@gmail.com> wrote: >> >> > colnames(e) <- paste0('pop',1:12) >> > >> > isn't a function and doesn't return anything. >> > >> >> But >> function(e){colnames(e) <- paste0('pop', 1:2)} >> is a function and it returns something (the last evaluated expression! - >> here the paste0 return): >> >> > mylist2 <- lapply(mylist, function(e){colnames(e) <- paste0('pop', >>1:2)}) >> > mylist2 >> [[1]] >> [1] "pop1" "pop2" >> >> [[2]] >> [1] "pop1" "pop2" >> >> [[3]] >> [1] "pop1" "pop2" >> >> from ?return: >> >> If the end of a function is reached without calling return, the value of >> the last evaluated expression is returned. >> >> > >> > > mylist <- list( >> > + data.frame(a = runif(10), b = runif(10)), >> > + data.frame(c = runif(10), d = runif(10)), >> > + data.frame(e = runif(10), f = runif(10))) >> > > mylist2 <- lapply(mylist, function(e){colnames(e) <- paste0('pop', >> 1:2); >> > e}) >> > > colnames(mylist2[[1]]) >> > [1] "pop1" "pop2" >> > >> > Sarah >> > >> > On Mon, Mar 30, 2015 at 9:54 AM, Vikram Chhatre >> > <crypticline...@gmail.com> wrote: >> > >> summary(mygenfreqt) >> > > Length Class Mode >> > > dat1.str 59220 -none- numeric >> > > dat2.str 59220 -none- numeric >> > > dat3.str 59220 -none- numeric >> > > >> > >> head(mylist[[1]]) >> > > 1 2 3 4 5 6 7 8 9 10 >> 11 >> > > 12 >> > > L0001.1 0.60 0.500 0.325 0.675 0.600 0.500 0.500 0.375 0.550 0.475 >> 0.350 >> > > 0.275 >> > > L0001.2 0.40 0.500 0.675 0.325 0.400 0.500 0.500 0.625 0.450 0.525 >> 0.650 >> > > 0.725 >> > > >> > > I want to change 1:12 to pop1:pop12 >> > > >> > > mylist<- lapply(mylist, function(e) colnames(e) <- >>paste0('pop',1:12)) >> > > >> > > What this is doing is replacing the data frames with just names >> > > pop1:pop12. I just want to replace the column labels. >> > > >> > > Thanks for any suggestions. >> > > >> > >> > -- >> > Sarah Goslee >> > http://www.functionaldiversity.org >> > >> > ______________________________________________ >> > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see >> > 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 -- To UNSUBSCRIBE and more, see >> 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 -- To UNSUBSCRIBE and more, see >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 -- To UNSUBSCRIBE and more, see 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.