Dear Nick,

The best solution is not to use which() but directy use the logical test.
This will work in case the condition is always FALSE and which() returns a
integer(0). And it is much faster too.
z <- y > 3
y[!z]

library(microbenchmark)
microbenchmark(
  y[!y > 3],
  y[-which(y > 3)]
)

Best regards,




ir. Thierry Onkelinx
Statisticus / Statistician

Vlaamse Overheid / Government of Flanders
INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE AND
FOREST
Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance
thierry.onkel...@inbo.be
Havenlaan 88 bus 73, 1000 Brussel
www.inbo.be

///////////////////////////////////////////////////////////////////////////////////////////
To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to say
what the experiment died of. ~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data. ~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of data.
~ John Tukey
///////////////////////////////////////////////////////////////////////////////////////////

<https://www.inbo.be>


Op di 8 jan. 2019 om 10:29 schreef Nick Wray via R-help <
r-help@r-project.org>:

> y<-c(1,2,3)
> z<-which(y>3)
> z
> y<-y[-z]
> y
>
> In the work I'm doing I often have this situation and have to make sure
> that I condition on z being non-zero as y is now numeric(0) rather than the
> set c(1,2,3).  Why does R do this?  Wouldn't it be more sensible for R to
> simply leave the host set unchanged if there are no elements to take out?
>
> Any thoughts?
>
> Thanks, Nick Wray
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@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@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.

Reply via email to