Hello,
data["601",] doesn't generate an error because you can also refer to a
row by its name, as an alternative to refering to it by row number.
It's the same with vectors, just consider the following case.
(x <- c("601"=1, b=2))
x[1]
x["601"] # the same
But when you want to remove it
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 a écrit :
> The OP cannot be entirely blamed for thinking that x[,-"ColName"]
>
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 :
> 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, ]
Hi, thanks for the answer.
In this case, the row named "601" is not the 601st row of the table, but
the 117th. data[601,] actually refers to a non existing row.
I was wondering why data[-"601,] generates an error message whereas
data["601",] does not?
2016-09-20 19:08 GMT+02:00 Bert Gunter
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:
>
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
> > Works like a charm, thanks! Still don't know what that error message
> > means though. Any idea?
You tried to negate a character string.
-"601"
'-' can't do that.
[-x] relies on negative _numbers_ to remove elements, not on separate
interpretation of '-' and 'x'.
S Ellison
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 :
> Works like a charm, thanks!
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 ruipbarra...@sapo.pt:
Hello,
Try something like the following.
ix <- which(c("601", "604") %in% rownames(data))
clean <-
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 :
Dear all,
I built a dataframe with read.csv2(). Initially, row names are integers
(order of
Hint: "601" is not 601.
Have you gone through any R tutorials?
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 Tue, Sep 20, 2016 at 5:42 AM,
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"
12 matches
Mail list logo