Hi everyone
The following behavior (in R 3.6.1 and R-devel r77040) caught me by
surprise today:
truthy <- c(TRUE, FALSE)
falsy <- c(FALSE, TRUE, FALSE)
if (truthy) "check"
#> Warning in if (truthy) "check": the condition has length > 1 and only the
#> first element will be used
#> [1] "check"
if (falsy) "check"
#> Warning in if (falsy) "check": the condition has length > 1 and only the
#> first element will be used
if (FALSE || truthy) "check"
#> [1] "check"
if (FALSE || falsy) "check"
if (truthy || FALSE) "check"
#> [1] "check"
if (falsy || FALSE) "check"
The || operator gobbles the warning about a length > 1 vector. I wonder
if the existing checks for length 1 can be extended to the operands of
the || and && operators. Thanks (and apologies if this has been raised
before).
Best regards
Kirill
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel