R 如何在%运算符之间创建中缀%?

R 如何在%运算符之间创建中缀%?,r,R,我希望在R中有一个中缀运算符%介于%之间,以检查x是否介于下限l和上限u之间 我创建了以下简单函数——但它不是中缀运算 # between function - check to see if x is between l and u is.between <- function(x, l, u) { x > l & x < u } #函数之间-检查x是否在l和u之间 在l&x=+1-您还应该为提供矢量化函数而受到赞扬,通过展示一个示例,x的长度大于1。在其中放入一些

我希望在
R
中有一个中缀运算符
%介于%
之间,以检查
x
是否介于下限
l
和上限
u
之间

我创建了以下简单函数——但它不是中缀运算

# between function - check to see if x is between l and u
is.between <- function(x, l, u) { x > l & x < u }
#函数之间-检查x是否在l和u之间
在l&x
我的目标是将其替换为:
x%c(l,u)

可以定义新的中缀操作吗?如果是这样的话,如何做到这一点


提前感谢

您可以将中缀运算符定义为函数:

`%between%`<-function(x,rng) x>rng[1] & x<rng[2]
1 %between% c(0,3)
# [1] TRUE
1 %between% c(2,3)
# [1] FALSE

此函数存在于包
数据中。表
(包括边界的细微差别)实现为:

between <- function(x,lower,upper,incbounds=TRUE)
{
  if(incbounds) x>=lower & x<=upper
  else x>lower & x<upper
}

"%between%" <- function(x,y) between(x,y[1],y[2],incbounds=TRUE)

between=lower&xlower&x为了避免歧义,可以定义两个函数:

"%><%"  <- function(x, rng) x > rng[1]  & x < rng[2]
"%>=<%" <- function(x, rng) x >= rng[1] & x <= rng[2]
x=1:5
x %><% c(2,4)
[1] FALSE FALSE  TRUE FALSE FALSE
x %>=<% c(2,4)
[1] FALSE  TRUE  TRUE  TRUE FALSE

“%>=+1-您还应该为提供矢量化函数而受到赞扬,通过展示一个示例,
x
的长度大于1。在其中放入一些输入验证代码不会有什么坏处(但这是一个增强功能——这个答案不需要)。然后,还有一些常见的选项:您希望能够包含goalPost吗(
x
"%><%"  <- function(x, rng) x > rng[1]  & x < rng[2]
"%>=<%" <- function(x, rng) x >= rng[1] & x <= rng[2]
x=1:5
x %><% c(2,4)
[1] FALSE FALSE  TRUE FALSE FALSE
x %>=<% c(2,4)
[1] FALSE  TRUE  TRUE  TRUE FALSE
"%> =<%"<-function(x,rng) x > rng[1]  & x <= rng[2]
"%>= <%"<-function(x,rng) x >= rng[1] & x < rng[2]