[R] inconsistency in switch statements.....

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Wed Sep 7 21:09:31 CEST 2022


Well, as it states on the Help page, which should always be the first
place to look for, ummm, help:

"If the value of EXPR is not a character string it is coerced to
integer. Note that this also happens for factors, with a warning, as
typically the character level is meant. If the integer is between 1
and nargs()-1 then the corresponding element of ... is evaluated and
the result returned: thus if the first argument is 3 then the fourth
argument is evaluated and returned."

So following up on Bill's comment, the arguments do not even need to
be names when Stst evaluates to) an integer:

> Stst <- 2
> switch(Stst, print("NO"), print("YES"))
[1] "YES"

Cheers,
Bert

On Wed, Sep 7, 2022 at 11:35 AM akshay kulkarni <akshay_e4 using hotmail.com> wrote:
>
> Dear members,
>                              The following is my code:
>
> > Stst <- 2
> > switch(Stst, 1 = print("NO"), 2 = print("YES"))
> Error: unexpected '=' in "switch(Stst, 1 ="
>
> Why isn't it printing "YES" on to the console?
>
> many thanks in advance.
>
> Thanking you,
> Yours sincerely,
> AKSHAY M KULKARNI
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.



More information about the R-help mailing list