[R] Oddity with names

Achim Zeileis zeileis at ci.tuwien.ac.at
Thu Jul 18 18:24:39 CEST 2002


Andrew Robinson wrote:
> 
> At 08:01 AM 7/18/2002 +0100, Brian D. Ripley wrote:
> >On Wed, 17 Jul 2002, Andrew Robinson wrote:
> >
> > > Hi all,
> > >
> > > I'm using R 1.5.1 on Windows 2000.  The following snippet of code doesn't
> > > seem to do anything - no error is reported, and there is no name change.
> > >
> > > names(myFrame[,c(1:3)]) <- c("name1", "name2", "name3")
> > >
> > > This code however works nicely:
> > >
> > > names(myFrame)[c(1:3)] <- c("name1", "name2", "name3")
> > >
> > > Can anyone suggest why the first doesn't work?  Ought an error be reported?
> >
> >It does work.  It creates a new object myFrame[,c(1:3)] and changes its
> >names.  That's not what you wanted, but R is your servant not your master
> >and does allow you to do such things.
> 
> I'm sorry but I'm still confused.  Do you mean that another object called
> myFrame is created, with the new names?  It doesn't appear in the objects()
> list.  The original is still there, within unchanged names.

The command
 myFrame[,1:3]
returns a data frame with the first three columns of the data frame
myFrame. 
It doesn't appear in objects() because you didn't assign it to anything!
With the command
 names(myFrame[,c(1:3)])
you change the names of this new object, which is not what you wanted.
You wanted to change the names of the existing object myFrame and the
above command just doesn't do that! This answers your first
question...and also your second: as there is nothing forbidden about the
command
  names(myFrame[,c(1:3)]) <- c("name1", "name2", "name3")
no error needs to be reported. *You* simply have to use the right
command.
Z


> Andrew
> 
> Andrew Robinson                  Phone: 208-885-7115
> Department of Forest Resources   Fax:   208-885-6226
> University of Idaho              E: andrewr at uidaho.edu
> Po Box 441133                    WWW: http://www.uidaho.edu/~andrewr
> Moscow, ID 83843                 and: http://www.biometrics.uidaho.edu/
> No statement above may be construed to necessarily represent my employer.
> 
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list