sufijos sufijo qué prefijos prefijo palabras morfemas listado lexema interfijos interfijo infijos infijo identificar entre ejemplos diferencia con como r

r - sufijo - qué es un infijo y ejemplos



¿Cómo puedo crear un infijo% entre% operador? (3)

Esta función existe en el paquete data.table (con la ligera diferencia de que los límites están incluidos), implementada como:

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)

Se puede utilizar como between(x,lower,upper) o x %between% c(lower, upper)

Me gustaría tener un operador de infijo %between% en R - para verificar si x está entre el límite inferior l y el límite superior u .

He creado la siguiente función simple, pero no es una operación de infijo.

# between function - check to see if x is between l and u is.between <- function(x, l, u) { x > l & x < u }

Mi objetivo es reemplazar esto con: x %between% c(l, u)

¿Es posible definir nuevas operaciones de infijo? Si es así, ¿cómo se hace esto?

gracias por adelantado


Para evitar la ambigüedad, se podrían definir dos funciones:

"%><%" <- 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

O incluso agregar estos otros dos:

"%> =<%"<-function(x,rng) x > rng[1] & x <= rng[2] "%>= <%"<-function(x,rng) x >= rng[1] & x < rng[2]


Puede definir operadores de infijo como funciones:

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

Como lo señaló @flodel, este operador está vectorizado:

1:5 %between% c(1.5,3.5) # [1] FALSE TRUE TRUE FALSE FALSE