[R] "invalid argument to unary operator" while selecting rows by name

Pauline Laïlle pauline.laille at gmail.com
Wed Sep 21 20:24:44 CEST 2016


Tanks for all your answers and for taking the time to help me better
understand my mistake.
I will take your advice and do some reading!
Best,
P.

Le mercredi 21 septembre 2016, William Dunlap <wdunlap at tibco.com> a écrit :

> The OP cannot be entirely blamed for thinking that x[,-"ColName"]
> would omit x's "ColName" from the result.  Base R and many packages
> have commonly used functions that do context-sensitive (aka 'nonstandard')
> evaluation.
>
> E.g. subset() evaluates each argument in a different way:
>   > subset(data.frame(ColA=1:3,ColB=-(11:13)), -ColB>11, -ColA)
>     ColB
>   2  -12
>   3  -13
>
>
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
>
> On Wed, Sep 21, 2016 at 7:45 AM, Bert Gunter <bgunter.4567 at gmail.com
> <javascript:_e(%7B%7D,'cvml','bgunter.4567 at gmail.com');>> wrote:
>
>> No, Rui, your example misses the point. Your initial sentence hits it.
>>
>> The OP needs to carefully read
>> ?"["
>> and/or spend some time with a suitable R tutorial to learn proper
>> syntax for subscripting. Asking foolish questions in lieu of doing her
>> homework seems wrongheaded to me. Others may disagree, of course.
>>
>> Cheers,
>> Bert
>>
>>
>>
>>
>> Cheers,
>> Bert
>> Bert Gunter
>>
>> "The trouble with having an open mind is that people keep coming along
>> and sticking things into it."
>> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>>
>>
>> On Wed, Sep 21, 2016 at 1:26 AM,  <ruipbarradas at sapo.pt
>> <javascript:_e(%7B%7D,'cvml','ruipbarradas at sapo.pt');>> wrote:
>> > Hello,
>> >
>> > The error message means exactly what it says. The operator '-' is
>> > unary and cannot be followed by a non-numeric atomic object (a vector).
>> > Try for instance
>> >
>> > x <- list(a=1:10, b=rnorm(5))
>> > -x
>> >
>> > Rui Barradas
>> >
>> >
>> > Citando Pauline Laïlle <pauline.laille at gmail.com
>> <javascript:_e(%7B%7D,'cvml','pauline.laille at gmail.com');>>:
>> >
>> >> Works like a charm, thanks! Still don't know what that error message
>> >> means though. Any idea?
>> >>
>> >>   2016-09-20 20:13 GMT+02:00 <ruipbarradas at sapo.pt
>> <javascript:_e(%7B%7D,'cvml','ruipbarradas at sapo.pt');>>:
>> >>> Sorry, I've made a stupid mistake.
>> >>> It's obviously the other way around.
>> >>>
>> >>> ix <- which(rownames(data) %in% c("601", "604"))
>> >>> clean <- data[-ix, ]
>> >>>
>> >>> Rui Barradas
>> >>>
>> >>> Citando ruipbarradas at sapo.pt
>> <javascript:_e(%7B%7D,'cvml','ruipbarradas at sapo.pt');>:
>> >>>> Hello,
>> >>>>
>> >>>> Try something like the following.
>> >>>>
>> >>>> ix <- which(c("601", "604") %in% rownames(data))
>> >>>> clean <- data[-ix, ]
>> >>>>
>> >>>> Hope this helps,
>> >>>>
>> >>>> Rui Barradas
>> >>>>
>> >>>> Citando Pauline Laïlle <pauline.laille at gmail.com
>> <javascript:_e(%7B%7D,'cvml','pauline.laille at gmail.com');>>:
>> >>>>
>> >>>>> Dear all,
>> >>>>>
>> >>>>> I built a dataframe with read.csv2(). Initially, row names are
>> integers
>> >>>>> (order of answers to a survey). They are listed in the csv's first
>> column.
>> >>>>> The import works well and my dataframe looks like I wanted it to
>> look.
>> >>>>>
>> >>>>> Row names go as follows :
>> >>>>> [1] "6"   "29"  "31"  "32"  "52"  "55"  "63"  "71"  "72"  "80"
>> "88"  "89"
>> >>>>> "91"  "93"  "105" "110" "111" "117" "119" "120"
>> >>>>> [21] "122" "127" "128" "133" "137" "140" "163" "165" "167" "169"
>> "177"
>> >>>>> "178" "179" "184" "186" "192" "193" "200" "201" "228"
>> >>>>> etc.
>> >>>>>
>> >>>>> I would like to drop rows "601" & "604" to clean the dataframe.
>> >>>>>
>> >>>>> While data["601",] shows me the first row i'd like to drop,
>> data[-"601",]
>> >>>>> returns the following :
>> >>>>> Error in -"601" : invalid argument to unary operator
>> >>>>>
>> >>>>> idem with data[c("601","604"),] and data[-c("601","604"),]
>> >>>>>
>> >>>>> It is the first time that I run into this specific error. After
>> reading a
>> >>>>> bit about it I still don't understand what it means and how to fix
>> it.
>> >>>>>
>> >>>>> Thanks for reading!
>> >>>>> Best,
>> >>>>> Pauline.
>> >>>>>
>> >>>>>         [[alternative HTML version deleted]]
>> >>>>>
>> >>>>> ______________________________________________
>> >>>>> R-help at r-project.org
>> <javascript:_e(%7B%7D,'cvml','R-help at r-project.org');> mailing list --
>> To UNSUBSCRIBE and more, see
>> >>>>> 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
>> <javascript:_e(%7B%7D,'cvml','R-help at r-project.org');> mailing list --
>> To UNSUBSCRIBE and more, see
>> >>>> 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.
>> >>>
>> >>>
>> >
>> >
>> >
>> >         [[alternative HTML version deleted]]
>> >
>> > ______________________________________________
>> > R-help at r-project.org
>> <javascript:_e(%7B%7D,'cvml','R-help at r-project.org');> mailing list --
>> To UNSUBSCRIBE and more, see
>> > https://stat.ethz.ch/mailman/listinfo/r-help
>> > PLEASE do read the posting guide http://www.R-project.org/posti
>> ng-guide.html
>> > and provide commented, minimal, self-contained, reproducible code.
>>
>> ______________________________________________
>> R-help at r-project.org
>> <javascript:_e(%7B%7D,'cvml','R-help at r-project.org');> mailing list --
>> To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posti
>> ng-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
>
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list