[R] omitting columns from a data frame

Ista Zahn izahn at psych.rochester.edu
Tue Jun 21 15:57:18 CEST 2011


I would cation people not to use the -which strategy because entering
a value that doesn't exist as a column name returns a zero-column
data.frame, without so much as a warning. This can be a problem if you
don't know if a column exists but just want to make sure it doesn't,
or if you make a typo. Compare

head(mtcars[, -which(names(mtcars) == "make.sure.to.delete")])

to

head(mtcars[, setdiff(names(mtcars), "make.sure.to.delete")])

Best,
Ista

On Tue, Jun 21, 2011 at 12:22 AM, Joshua Wiley <jwiley.psych at gmail.com> wrote:
> On Mon, Jun 20, 2011 at 8:55 PM, Erin Hodgess <erinm.hodgess at gmail.com> wrote:
>> Too funny!
>>
>> how about subset?
>
> Sure, that is one option.  Each of the following will also work.  The
> ones wrapped with c() can easily omit more than one at a time.
>
> mtcars[, -which(names(mtcars) == "drat")]
> mtcars[, names(mtcars) != "drat"]
> mtcars[, !names(mtcars) %in% c("drat")]
> mtcars[, -match(c("drat"), names(mtcars))]
>
>>
>> On Mon, Jun 20, 2011 at 10:52 PM, Joshua Wiley <jwiley.psych at gmail.com> wrote:
>>> Hi Erin,
>>>
>>> See inline.
>>>
>>> On Mon, Jun 20, 2011 at 8:45 PM, Erin Hodgess <erinm.hodgess at gmail.com> wrote:
>>>> Dear R People:
>>>>
>>>> I have a data frame, xm1, which has 12 rows and 4 columns.
>>>>
>>>> If I put is xm1[,-4], I get all rows, and columns 1 - 3, which is as
>>>> it should be.
>>>
>>> Okay, so you know how to use the column number to omit columns.
>>>
>>>>
>>>> Now, is there a way to use the names of the columns to omit them, please?
>>>
>>> You have all the pieces (the column names, and the knowledge that you
>>> can omit columns by their index).
>>>
>>> Homework: find a way to return the column numbers given the column names (hint).
>>>
>>> Cheers,
>>>
>>> Josh
>>>
>>>
>>>
>>>>
>>>> Thanks so much in advance!
>>>>
>>>> Sincerely,
>>>> Erin
>>>>
>>>>
>>>> --
>>>> Erin Hodgess
>>>> Associate Professor
>>>> Department of Computer and Mathematical Sciences
>>>> University of Houston - Downtown
>>>> mailto: erinm.hodgess at gmail.com
>>>>
>>>> ______________________________________________
>>>> 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.
>>>>
>>>
>>>
>>>
>>> --
>>> Joshua Wiley
>>> Ph.D. Student, Health Psychology
>>> University of California, Los Angeles
>>> http://www.joshuawiley.com/
>>>
>>
>>
>>
>> --
>> Erin Hodgess
>> Associate Professor
>> Department of Computer and Mathematical Sciences
>> University of Houston - Downtown
>> mailto: erinm.hodgess at gmail.com
>>
>
>
>
> --
> Joshua Wiley
> Ph.D. Student, Health Psychology
> University of California, Los Angeles
> http://www.joshuawiley.com/
>
> ______________________________________________
> 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.
>



-- 
Ista Zahn
Graduate student
University of Rochester
Department of Clinical and Social Psychology
http://yourpsyche.org



More information about the R-help mailing list