[R] changing column labels for data frames inside a list
MacQueen, Don
macqueen1 at llnl.gov
Mon Mar 30 16:48:26 CEST 2015
Assuming that the elements of mylist are data frames, try this:
mylist <- lapply(mylist, function(e) { names(e) <- paste0('pop',1:12) ; e})
With certain exceptions, the result of a function is the result of the
last expression in the function body. As you defined it, the last
expression was
colnames(e) <- paste0('pop',1:12)
that is, the column names (not "labels", but names).
If the elements really are data frames, then names() can be used instead
of colnames(), but colnames() is ok. I don't know if one of them is better
than the other for data frames.
-Don
--
Don MacQueen
Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062
On 3/30/15, 6:54 AM, "Vikram Chhatre" <crypticlineage at 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.
>
> [[alternative HTML version deleted]]
>
>______________________________________________
>R-help at 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.
More information about the R-help
mailing list