Ben Fairbank
2006-Dec-14 17:39 UTC
[R] Better way to change the name of a column in a dataframe?
Hello R users -- If I have a dataframe such as the following, named "frame" with the columns intended to be named col1 through col6,> framecol1 col2 cmlo3 col4 col5 col6 [1,] 3 10 2 6 5 7 [2,] 6 8 4 10 7 1 [3,] 7 5 1 3 1 8 [4,] 10 6 5 4 9 2 and I want to correct or otherwise change the name of one of the columns, I can do so with> dimnames(frame)[[2]][which(dimnames(frame)[[2]]=="cmlo3")] <- "col3"which renames the offending column:> framecol1 col2 col3 col4 col5 col6 [1,] 3 10 2 6 5 7 [2,] 6 8 4 10 7 1 [3,] 7 5 1 3 1 8 [4,] 10 6 5 4 9 2 This seems cumbersome and not very intuitive. How can one accomplish this more simply? With thanks for any suggestions, Ben Fairbank [[alternative HTML version deleted]]
Benjamin Tyner
2006-Dec-14 21:23 UTC
[R] Better way to change the name of a column in a dataframe?
Ben, Unless I misunderstand your question, why not just use names(frame)[3]<-"col3"
Mike Prager
2006-Dec-14 22:05 UTC
[R] Better way to change the name of a column in a dataframe?
"Ben Fairbank" <BEN at SSANET.COM> wrote:> [...] I want to correct or otherwise change the name of one of the > columns, I can do so with > > > dimnames(frame)[[2]][which(dimnames(frame)[[2]]=="cmlo3")] <- "col3" > > This seems cumbersome and not very intuitive. How can one accomplish > this more simply?This is slightly simpler than what you had: names(frame)[which(names(frame) == "cmlo3")] <- "col3" There are probably better ways still. -- Mike Prager, NOAA, Beaufort, NC * Opinions expressed are personal and not represented otherwise. * Any use of tradenames does not constitute a NOAA endorsement.
Andrew Robinson
2006-Dec-14 22:24 UTC
[R] Better way to change the name of a column in a dataframe?
Hi, names(frame)[names(frame) == "cmlo3"] <- "col3" should also work Cheers Andrew On Thu, Dec 14, 2006 at 05:05:20PM -0500, Mike Prager wrote:> "Ben Fairbank" <BEN at SSANET.COM> wrote: > > > [...] I want to correct or otherwise change the name of one of the > > columns, I can do so with > > > > > dimnames(frame)[[2]][which(dimnames(frame)[[2]]=="cmlo3")] <- "col3" > > > > This seems cumbersome and not very intuitive. How can one accomplish > > this more simply? > > This is slightly simpler than what you had: > > names(frame)[which(names(frame) == "cmlo3")] <- "col3" > > There are probably better ways still. > > -- > Mike Prager, NOAA, Beaufort, NC > * Opinions expressed are personal and not represented otherwise. > * Any use of tradenames does not constitute a NOAA endorsement. > > ______________________________________________ > R-help at stat.math.ethz.ch 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.-- Andrew Robinson Department of Mathematics and Statistics Tel: +61-3-8344-9763 University of Melbourne, VIC 3010 Australia Fax: +61-3-8344-4599 http://www.ms.unimelb.edu.au/~andrewpr http://blogs.mbs.edu/fishing-in-the-bay/
Joerg van den Hoff
2006-Dec-15 07:58 UTC
[R] Better way to change the name of a column in a dataframe?
Ben Fairbank wrote:> Hello R users -- > > > > If I have a dataframe such as the following, named "frame" with the > columns intended to be named col1 through col6, > > > >> frame > > col1 col2 cmlo3 col4 col5 col6 > > [1,] 3 10 2 6 5 7 > > [2,] 6 8 4 10 7 1 > > [3,] 7 5 1 3 1 8 > > [4,] 10 6 5 4 9 2 > > > > and I want to correct or otherwise change the name of one of the > columns, I can do so with > > > >> dimnames(frame)[[2]][which(dimnames(frame)[[2]]=="cmlo3")] <- "col3" > > > > which renames the offending column: > > > >> frame > > col1 col2 col3 col4 col5 col6 > > [1,] 3 10 2 6 5 7 > > [2,] 6 8 4 10 7 1 > > [3,] 7 5 1 3 1 8 > > [4,] 10 6 5 4 9 2 > > > > This seems cumbersome and not very intuitive. How can one accomplish > this more simply? > >well I would simply use names(frame)[3] = 'col3' (supposing you know the column number of your offending column anyway).
Don MacQueen
2006-Dec-16 00:49 UTC
[R] Better way to change the name of a column in a dataframe?
And there is the rename.vars() function in the gdata package. -Don At 11:39 AM -0600 12/14/06, Ben Fairbank wrote:>Hello R users -- > > > >If I have a dataframe such as the following, named "frame" with the >columns intended to be named col1 through col6, > > > >> frame > > col1 col2 cmlo3 col4 col5 col6 > >[1,] 3 10 2 6 5 7 > >[2,] 6 8 4 10 7 1 > >[3,] 7 5 1 3 1 8 > >[4,] 10 6 5 4 9 2 > > > >and I want to correct or otherwise change the name of one of the >columns, I can do so with > > > >> dimnames(frame)[[2]][which(dimnames(frame)[[2]]=="cmlo3")] <- "col3" > > > >which renames the offending column: > > > >> frame > > col1 col2 col3 col4 col5 col6 > >[1,] 3 10 2 6 5 7 > >[2,] 6 8 4 10 7 1 > >[3,] 7 5 1 3 1 8 > >[4,] 10 6 5 4 9 2 > > > >This seems cumbersome and not very intuitive. How can one accomplish >this more simply? > > > >With thanks for any suggestions, > > > >Ben Fairbank > > > [[alternative HTML version deleted]] > >______________________________________________ >R-help at stat.math.ethz.ch 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