[R] Filtering a data frame using a string for colum header
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Feb 23 09:41:13 CET 2009
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-bounces 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.breyal at googlemail.com
>>> To: r-help 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-help 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-help 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-help 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.
>
--
Brian D. Ripley, ripley 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
More information about the R-help
mailing list