[R] inverse of which()

William Dunlap wdun|@p @end|ng |rom t|bco@com
Thu Feb 28 03:56:10 CET 2019


The inverse of which() would have to know the length of the logical vector
to create.  The function could be
   invWhich <- function(whichTrue, length) {
       stopifnot(length <= max(whichTrue), !anyNA(whichTrue))
       v <- logical(length)
       v[whichTrue] <- TRUE
       v
   }
It isn't quite an inverse, as which() treats NA and FALSE the same.

Much of the time dealing with the logical vector (e.g, grepl() instead of
grep()) is less error prone than using which() to convert to indices of the
TRUE values.

Bill Dunlap
TIBCO Software
wdunlap tibco.com


On Wed, Feb 27, 2019 at 3:04 PM Ed Siefker <ebs15242 using gmail.com> wrote:

> Given a vector of booleans, chich() will return indices that are TRUE.
>
> Given a vector of indices, how can I get a vector of booleans?
>
> My intent is to do logical operations on the output of grep().  Maybe
> there's a better way to do this?
>
> Thanks
> -Ed
>
> ______________________________________________
> R-help using 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]]



More information about the R-help mailing list