From henr|k@bengt@@on @end|ng |rom gm@||@com  Mon Aug 19 16:35:09 2019
From: henr|k@bengt@@on @end|ng |rom gm@||@com (Henrik Bengtsson)
Date: Mon, 19 Aug 2019 16:35:09 +0200
Subject: [Rd] 
 Check length of logical vector also for operands of || and &&?
In-Reply-To: <da321aed-5d85-a206-e94f-92852da46cf9@mailbox.org>
References: <da321aed-5d85-a206-e94f-92852da46cf9@mailbox.org>
Message-ID: <CAFDcVCQB9H4WWrRfZ6TG=-eX1at7CpCkXEkVMPTeu_An4+kPpQ@mail.gmail.com>

NEWS for R 3.6.0:

* Experimentally, setting environment variable
_R_CHECK_LENGTH_1_LOGIC2_ will lead to warnings (or errors if the
variable is set to a ?true? value) when && or || encounter and use
arguments of length more than one.

> Sys.setenv("_R_CHECK_LENGTH_1_LOGIC2_" = "TRUE")
> if (FALSE || truthy) "check"
Error in FALSE || truthy :
  'length(x) = 2 > 1' in coercion to 'logical(1)'

Some more info and breadcrumbs at
https://github.com/HenrikBengtsson/Wishlist-for-R/issues/48

/Henrik

On Mon, Aug 19, 2019 at 4:19 PM Kirill M?ller <krlmlr+ml at mailbox.org> wrote:
>
> 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 at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] Check length of logical vector also for operands of || and &&?
Henrik Bengtsson