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

Bert Gunter bgunter.4567 at gmail.com
Wed Sep 21 16:45:09 CEST 2016


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> 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>:
>
>> 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>:
>>> 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:
>>>> 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>:
>>>>
>>>>> 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 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 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 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.



More information about the R-help mailing list