dplyr::translate_sql() redefines lots of functions, include "if", to
translate from R syntax to SQL syntax.
> dplyr::translate_sql(if ("mpg">25) "better" else "worse")
<SQL> CASE WHEN ('mpg' > 25.0) THEN ('better') ELSE ('worse') END
Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Sat, Mar 4, 2017 at 12:22 PM, Michael Lawrence
<[email protected]> wrote:
> I'm curious as to precisely why someone would want to do this.
>
> On Sat, Mar 4, 2017 at 11:49 AM, Da Zheng <[email protected]> wrote:
>
>> I'm just curious. Why making "if" generic is even more dangerous?
>>
>> Best,
>> Da
>>
>> On Sat, Mar 4, 2017 at 1:22 PM, Gábor Csárdi <[email protected]>
>> wrote:
>> > `!` is a generic, `if` is not. You can define an `if` that is generic,
>> > but this might be even more dangerous....
>> >
>> > ❯ `if` <- function(a, b, c) UseMethod("if")
>> > ❯ `if.default` <- function(a,b,c) base::`if`(a, b, c)
>> > ❯ `if.foo` <- function(a, b, c) FALSE
>> > ❯ a <- structure(42, class = "foo")
>> >
>> > ❯ if (a) TRUE else FALSE
>> > [1] FALSE
>> >
>> > ❯ if (1) TRUE else FALSE
>> > [1] TRUE
>> >
>> > Gabor
>> >
>> > On Sat, Mar 4, 2017 at 5:47 PM, Da Zheng <[email protected]> wrote:
>> >> Thanks.
>> >> Can I override it for a specific class?
>> >> I can do that for operators such as "!". For example, "!.fm" works for
>> >> objects of the class "fm".
>> >> It seems I can't do the same for "if".
>> >>
>> >> Best,
>> >> Da
>> >>
>> >> On Sat, Mar 4, 2017 at 12:41 PM, Gábor Csárdi <[email protected]>
>> wrote:
>> >>> You can. Perhaps needless to say, be careful with this.
>> >>>
>> >>> ❯ `if` <- function(...) FALSE
>> >>> ❯ if (TRUE) TRUE else FALSE
>> >>> [1] FALSE
>> >>>
>> >>> G.
>> >>>
>> >>> On Sat, Mar 4, 2017 at 5:36 PM, Da Zheng <[email protected]>
>> wrote:
>> >>>> Hello,
>> >>>>
>> >>>> I heard we can override almost everything in R. Is it possible to
>> >>>> override "if" keyword in R to evaluate my own object instead of a
>> >>>> logical value?
>> >>>>
>> >>>> Thanks,
>> >>>> Da
>> >>>>
>> >>>> ______________________________________________
>> >>>> [email protected] mailing list
>> >>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>> ______________________________________________
>> [email protected] mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel