Diverted from R-help to R-devel,

as I've changed the focus to consider adding new functions to R :

>>>>> peter dalgaard

>>>>> on Fri, 21 Feb 2020 10:46:16 +0100 writes:

> It has isTRUE, but that is not vectorized, and in fact explicitly tests length==1, so

>> isTRUE(c(TRUE,FALSE,NA))

> [1] FALSE

>> isTRUE(c(TRUE,TRUE, TRUE)) # I thought I thaw a puddycat... ;-)

> [1] FALSE

>> Vectorize(isTRUE)(c(TRUE,FALSE,NA))

> [1] TRUE FALSE FALSE

> (The latter would be silly as an implementation of is_true, of course.)

> -pd

yes... We've had (hidden) functions in the Matrix package for

these, which can still be accelerated (quite a bit for most

arguments), in Matrix/R/Auxiliaries.R (see the R-forge development version :

https://r-forge.r-project.org/scm/viewvc.php/pkg/Matrix/R/Auxiliaries.R?view=markup&root=matrix )

## Need to consider NAs ; "== 0" even works for logical & complex:

## Note that "!x" is faster than "x == 0", but does not (yet!) work for complex

## if we did these in C, would gain a factor 2 (or so):

is0 <- function(x) !is.na(x) & x == 0

isN0 <- function(x) is.na(x) | x != 0

is1 <- function(x) !is.na(x) & x # also == "isTRUE componentwise"

{{Note that here 0 <==> FALSE and non-0 <==> TRUE , and I

had preferred the shorter words to the longer ones in the

Matrix pkg, not the least as '0' is relevant also for

talking/programming about sparse matrices ..

}}

... and then there are all* and any* versions of these

functions there , for which I have even written fast C based .Call()s ...

May this be something worth adding to base for R 4.0.0

(if only just to entice more users making the effort to switch

to it in ca. 2 months) ?

Martin

>> On 20 Feb 2020, at 04:20 , Lijun Zhao <

[hidden email]> wrote:

>>

>>

>> Some packages have the equivalent of that is_true function, which maps FALSE and NA to FALSE and TRUE to TRUE. I don't think core R contains such a function.

> --

> Peter Dalgaard, Professor,

> Center for Statistics, Copenhagen Business School

> Solbjerg Plads 3, 2000 Frederiksberg, Denmark

> Phone: (+45)38153501

> Office: A 4.23

> Email:

[hidden email] Priv:

[hidden email]
> ______________________________________________

>

[hidden email] 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.

______________________________________________

[hidden email] mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel