[R] Operator proposal: %between%

Greg Snow 538280 at gmail.com
Thu Sep 4 21:54:16 CEST 2014


The TeachingDemos package has %<% and %<=% operators for a between
style comparison.  So for your example you could write:

1 %<% 5 %<% 10

or

1 %<=% 5 %<=% 10

And these operators already work with vectors:

lb %<=% x %<% ub

and can even be further chained:

0 %<% x %<% y %<% z %<% 1  # only points where x < y and y < z and all
between 0 and 1.

It is a little bit different syntax from yours, but would that do what you want?

If not, we could add a %between% function (expand it a bit following
Duncan's suggestion) to the TeachingDemos package if you don't want to
create your own package.

On Thu, Sep 4, 2014 at 8:41 AM, Torbjørn Lindahl
<torbjorn.lindahl at gmail.com> wrote:
> Not sure if this is the proper list to propose changes like this, if it
> passes constructive criticism, it would like to have a %between% operator
> in the R language.
>
> I currently have this in my local R startup script:
>
> `%between%` <- function(x,...) {
>   y <- range( unlist(c(...)) )
>   return( x >= y[1] & x =< y[2] )
> }
>
> It allows me to do things like: 5 %between c(1,10)
>
> and also as act as an "in_range" operator:
> foo %between% a.long.list.with.many.values
>
> This may seem unnecessary, since 5 >= foo[1] && foo<= foo[2] is also quite
> short to type, but there is a mental cost to this, eg if you are deeply
> focused on a complicated program flow, the %between% construct is a lot
> easier to type out, and relate to, than the logically more complex
> construct with && and <=/>=, at least in my experience.
>
> --
> mvh
> Torbjørn Lindahl
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.



-- 
Gregory (Greg) L. Snow Ph.D.
538280 at gmail.com



More information about the R-help mailing list