[R] Filtering a data frame using a string for colum header

Tony Breyal tony.breyal at googlemail.com
Mon Feb 23 11:15:13 CET 2009


Cheers guys,

yeah, I was using this bit of code as my work around:

> filter.col <- which(names(my.df)!="DrHorrible")
> my.df[filter.col]

but you guys had better solutions  :-)

Is there an R wish list somewhere? I tried google but couldn't find a
specific location, just various threads here and there. It just seems
to me that if

> my.df2["DrHorrible"]

works, then

> my.df2[-"DrHorrible"]

should work too, in the same way that my.df2[-2] would.

Thanks again, always good to learn new and better ways of doing
things,
Tony Breyal





On 23 Feb, 08:41, Prof Brian Ripley <rip... at stats.ox.ac.uk> wrote:
> I would have used
>
> 1) != rather than ! ... ==
>
> 2) !(names(my.df) %in% "DrHorrible")  since that handles NA names
> (possible, but not easy to get) better.
>
> and note that
>
> 3) subset(my.df, select = -DrHorrible) works.
>
>
>
> On Mon, 23 Feb 2009, Petr PIKAL wrote:
> > Hi
>
> > r-help-boun... at r-project.org napsal dne 23.02.2009 03:44:41:
>
> >> Hi Tony,
>
> >> I "GUESS" my.df[-"DrHorrible"] does not tell R which column "NUMBER"
> > would
> >> like to remove.
> >> As we know, we could use my.df[-4] and it exactly tells R which column
> > must
> >> remvoer from your data.
>
> >> > my.df[-4]
> >>   Angel Buffy Firefly
> >> 1     7     8       9
> >> 2     8     9       9
> >> 3     6     4      10
> >> 4     9     9      10
> >> 5    10    10      10
>
> >> I may be not right.
>
> > It is a bit deeper than [] selection.
>
> >> -"DrHorrible"
> > Error in -"DrHorrible" : invalid argument to unary operator, so the error
> > is within selection operator [...].
>
> > If you know the name and you do not want column with this particular name
> > use
>
> > my.df[,!names(my.df)==("DrHorrible")]
>
> > Regards
> > Petr
>
> >> Chunhao
>
> >>> Date: Sun, 22 Feb 2009 14:48:10 -0800
> >>> From: tony.bre... at googlemail.com
> >>> To: r-h... at r-project.org
> >>> Subject: [R] Filtering a data frame using a string for colum header
>
> >>> Hi all,
>
> >>> I was just radomly playing with R and got the following error when
> >>> trying to filter a data frame using a string:
>
> >>>> Angel <- c(7,8,6,9,10)
> >>>> Buffy <- c(8,9,4,9,10)
> >>>> Firefly <- c(9,9,10,10,10)
> >>>> DrHorrible <- c(10,9,9,10,10)
> >>>> my.df <- data.frame(Angel, Buffy, Firefly, DrHorrible)
> >>>> my.df["DrHorrible"]
> >>> DrHorrible
> >>> 1 10
> >>> 2 9
> >>> 3 9
> >>> 4 10
> >>> 5 10
> >>>> my.df[-"DrHorrible"]
> >>> Error in -"DrHorrible" : invalid argument to unary operator
>
> >>> I know how to work around this problem quite easily, I'm just curious
> >>> as to why the my.df[-"DrHorrible] statement didn't work?
>
> >>> Cheers,
> >>> Tony
>
> >>> OS = win XP
> >>>> sessionInfo()
> >>> R version 2.8.1 (2008-12-22)
> >>> i386-pc-mingw32
>
> >>> locale:
> >>> LC_COLLATE=English_United Kingdom.1252;LC_CTYPE=English_United
> > Kingdom.
> >>> 1252;LC_MONETARY=English_United Kingdom.
> >>> 1252;LC_NUMERIC=C;LC_TIME=English_United Kingdom.1252
>
> >>> attached base packages:
> >>> [1] stats graphics grDevices utils datasets methods
> >>> base
>
> >>> ______________________________________________
> >>> R-h... at r-project.org 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.
>
> >> _________________________________________________________________
> >> [[elided Hotmail spam]]
>
> >>    [[alternative HTML version deleted]]
>
> >> ______________________________________________
> >> R-h... at r-project.org 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.
>
> > ______________________________________________
> > R-h... at r-project.org mailing list
> >https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> --
> Brian D. Ripley,                  rip... at stats.ox.ac.uk
> Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> University of Oxford,             Tel:  +44 1865 272861 (self)
> 1 South Parks Road,                     +44 1865 272866 (PA)
> Oxford OX1 3TG, UK                Fax:  +44 1865 272595
>
> ______________________________________________
> R-h... at r-project.org mailing listhttps://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guidehttp://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list