[R] Finding the position of a variable in a data.frame

John Kane jrkrideau at yahoo.ca
Wed Aug 2 23:24:50 CEST 2006


--- Chuck Cleland <ccleland at optonline.net> wrote:

> John Kane wrote:
> > Simple problem but I don't see the answer. I'm
> trying
> > to clean up some data
> > I have 120 columns in a data.frame.  I have one
> value
> > in a column named "blaw" that I want to change.
> How do
> > I find the coordinates. I can find the row by
> doing a
> > subset on the data.frame but how do I find out
> here
> > "blaw " is in columns without manually counting
> them
> > or converting names(Df) to a list and reading down
> the
> > list.
> > 
> > Simple example
> > 
> > cat <- c( 3,5,6,8,0)
> > dog <- c(3,5,3,6, 0)
> > rat <- c (5, 5, 4, 9, 0)
> > bat <- c( 12, 42, 45, 32, 54)
> > 
> > Df <- data.frame(cbind(cat, dog, rat, bat))
> > Df
> > subset(Df, bat >= 50)
> > 
> > ----results
> >   cat dog rat bat
> > 5   0   0   0  54
> > 
> > 
> > Thus I know that my target is in row 5 but how do
> I
> > figure out where 'bat' is?  
> 
> grep("bat", names(Df))

Thank you, I have never used grep.  More reading :(

> 
> > All I want to do is be able to say
> > Df[5,4] <- 100
> 
> Why not do it this way?
> 
> Df$bat <- replace(Df$bat, Df$bat >=50, 100)

Maybe because it is too blinding simple?  I'm still
thinking in SAS or Systat.

A great solution 

thanks very much

> 
> > Is there some way to have function(bat) return the
> > column number: some kind of a colnum() function? 
> I
> > had thought that I had found somthing  in
> > library(gdata) matchcols but no luck.
> > 
> > ______________________________________________
> > 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.
> 
> -- 
> Chuck Cleland, Ph.D.
> NDRI, Inc.
> 71 West 23rd Street, 8th floor
> New York, NY 10010
> tel: (212) 845-4495 (Tu, Th)
> tel: (732) 512-0171 (M, W, F)
> fax: (917) 438-0894
>



More information about the R-help mailing list