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 <lawrence.mich...@gene.com> 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 <zhengda1...@gmail.com> 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 <csardi.ga...@gmail.com> >> 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 <zhengda1...@gmail.com> 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 <csardi.ga...@gmail.com> >> 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 <zhengda1...@gmail.com> >> 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 >> >>>> >> >>>> ______________________________________________ >> >>>> R-devel@r-project.org mailing list >> >>>> https://stat.ethz.ch/mailman/listinfo/r-devel >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel