[R] Column renaming
Chip Barnaby
cbarnaby at wrightsoft.com
Mon May 5 17:54:50 CEST 2008
Yes, someone else pointed out my typo, sorry.
My issue here is that referring to columns by
index is risky. Hard-coded indices will be
buried in code and there will be trouble if
(when) the data organization changes. So I am
trying to learn how to work with names, but the
language does not seem to allow that approach
without some awkwardness. I guess I could write some helper functions.
Chip Barnaby
At 11:47 AM 5/5/2008, Peter Dalgaard wrote:
>Chip Barnaby wrote:
> > Peter,
> > My method seems to work, see below. Is there some reason it might not
> > work in general? This is the tersest way I have found to rename, but
> > it seems awkward, given that names( X) is repeated.
> >
>Nono, this technique works fine. It just wasn't what you wrote.... (look
>closer!)
>
> -p
> > Chip Barnaby
> > --------------------------
> >
> > > head( airquality)
> > Ozone Solar.R Wind Temp Month Day
> > 1 41 190 7.4 67 5 1
> > 2 36 118 8.0 72 5 2
> > 3 12 149 12.6 74 5 3
> > 4 18 313 11.5 62 5 4
> > 5 NA NA 14.3 56 5 5
> > 6 28 NA 14.9 66 5 6
> > >
> > > names( airquality)[names( airquality)=="Ozone"]<-"O3"
> > > head( airquality)
> > O3 Solar.R Wind Temp Month Day
> > 1 41 190 7.4 67 5 1
> > 2 36 118 8.0 72 5 2
> > 3 12 149 12.6 74 5 3
> > 4 18 313 11.5 62 5 4
> > 5 NA NA 14.3 56 5 5
> > 6 28 NA 14.9 66 5 6
> > >
> >
> >
> > At 11:19 AM 5/5/2008, Peter Dalgaard wrote:
> >> Chip Barnaby wrote:
> >> > Dear all,
> >> >
> >> > Is there a less cumbersome way to rename a column by name (as opposed
> >> > to index) than --
> >> >
> >> > names( X)[ names[ X] == "bob"]<-"sue"
> >> >
> >> > ?
> >> Not that I know of (notwithstanding that your code doesn't quite work as
> >> it stands...). You might have thought that this would work, but it
> >> obviously does not:
> >>
> >> > names(airquality["Ozone"]) <- "O3"
> >> > head(airquality)
> >> Ozone Solar.R Wind Temp Month Day
> >> 1 41 190 7.4 67 5 1
> >> 2 36 118 8.0 72 5 2
> >> 3 12 149 12.6 74 5 3
> >> 4 18 313 11.5 62 5 4
> >> 5 NA NA 14.3 56 5 5
> >> 6 28 NA 14.9 66 5 6
> >>
> >> (This is probably a design decision. In the same vein,
> >>
> >> airquality[6] <- data.frame(foo=1:153)
> >>
> >> will not change the name of column 6. It might be preferable if it did,
> >> from the conceptual point of view, but it is one of those things where I
> >> suspect that the world comes tumbling down if you try to change the
> >> behaviour...)
> >>
> >> >
> >> > A semi-related question: how does one get the index of a column by
> >> > name, something along the lines of col.index( X, "sue") ?
> >> >
> >> match("sue", names(X))
> >>
> >> --
> >> O__ ---- Peter Dalgaard Ãster Farimagsgade 5, Entr.B
> >> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
> >> (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
> >> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
> >
> > ---------------------------------------------------------
> > Chip Barnaby cbarnaby at wrightsoft.com
> > Vice President of Research
> > Wrightsoft Corp. 781-862-8719 x118 voice
> > 131 Hartwell Ave 781-861-2058 fax
> > Lexington, MA 02421 www.wrightsoft.com
> > ---------------------------------------------------------
> >
> >
>
>
>--
> O__ ---- Peter Dalgaard Ãster Farimagsgade 5, Entr.B
> c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
> (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
>~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
---------------------------------------------------------
Chip Barnaby cbarnaby at wrightsoft.com
Vice President of Research
Wrightsoft Corp. 781-862-8719 x118 voice
131 Hartwell Ave 781-861-2058 fax
Lexington, MA 02421 www.wrightsoft.com
---------------------------------------------------------
More information about the R-help
mailing list