---
title: "Operators"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Operators}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(queryBuilder)
```
The article describes default set of operators offered by `queryBuilder`.
Each operator generates expression that can be use to perform various filtering operations.
```{r}
listQueryOperators()
```
### Operators viable for any type of field:
**equal** - check if field elements equal the provided value
- R method: `==`.
- Sample rule: `queryRule(field = "cyl", operator = "equal", value = 1)`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "equal", value = 4)))`
- Argument `value` is required, should be a single value.
**not_equal** - check if field elements are different from the provided value
- R method: `!=`.
- Sample rule: `queryRule(field = "cyl", operator = "not_equal", value = 1)`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "not_equal", value = 4)))`
- Argument `value` is required, should be a single value.
**in** - check if field elements matches the provided set of values
- R method: \`%in%\`
.
- Sample rule: `queryRule(field = "cyl", operator = "in", value = c(4, 6))`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "in", value = c(4, 6))))`
- Argument `value` is required, should be a non-empty vector.
**not_in** - check if field elements do not match the provided set of values
- R method: !\`%in%\`
.
- Sample rule: `queryRule(field = "cyl", operator = "not_in", value = c(4, 6))`
- Sample rule as expression:
!cyl %in% c(4, 6)
- Argument `value` is required, should be a non-empty vector.
**is_null** - check if field elements are missing (`NA`)
- R method: `is.na`.
- Sample rule: `queryRule(field = "cyl", operator = "is_null")`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "is_null")))`
- Argument `value` is ignored.
**not_is_null** - check if field elements are different from the provided value
- R method: `!is.na`.
- Sample rule: `queryRule(field = "cyl", operator = "not_is_null")`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "not_is_null")))`
- Argument `value` is ignored.
### Operators viable for numerical and date/time based fields:
**less** - check if field elements are lesser than the provided value
- R method: `<`.
- Sample rule: `queryRule(field = "cyl", operator = "less", value = 6)`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "less", value = 6)))`
- Argument `value` is required, should be a single value.
**less_or_equal** - check if field elements are lesser or equal the provided value
- R method: `<=`.
- Sample rule: `queryRule(field = "cyl", operator = "less_or_equal", value = 6)`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "less_or_equal", value = 6)))`
- Argument `value` is required, should be a single value.
**greater** - check if field elements are greater than the provided value
- R method: `>`.
- Sample rule: `queryRule(field = "cyl", operator = "greater", value = 6)`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "greater", value = 6)))`
- Argument `value` is required, should be a single value.
**greater_or_equal** - check if field elements are greater or equal the provided value
- R method: `>=`.
- Sample rule: `queryRule(field = "cyl", operator = "greater_or_equal", value = 6)`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "greater_or_equal", value = 6)))`
- Argument `value` is required, should be a single value.
**between** - check if field elements fit within the provided range (boundary excluded)
- R method: `queryBuilder::in_range`.
- Sample rule: `queryRule(field = "cyl", operator = "between", value = c(4, 8))`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "between", value = c(4, 8))))`
- Argument `value` is required, should be a non-empty vector.
**not_between** - check if field elements do not match the provided set of values (boundary included)
- R method: `!queryBuilder::in_range`.
- Sample rule: `queryRule(field = "cyl", operator = "not_between", value = c(4, 8))`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "not_between", value = c(4, 8))))`
- Argument `value` is required, should be a non-empty vector.
### Operators viable for character fields:
**begins_with** - check if field elements start with the provided string value
- R method: `startsWith`.
- Sample rule: `queryRule(field = "Species", operator = "begins_with", value = "setos")`
- Sample rule as expression:
startsWith(Species, \"setos\")
- Argument `value` is required, should be a single character value.
**not_begins_with** - check if field elements do not start with the provided string value
- R method: `!startsWith`.
- Sample rule: `queryRule(field = "Species", operator = "not_begins_with", value = "setos")`
- Sample rule as expression:
!startsWith(Species, \"setos\")
- Argument `value` is required, should be a single value.
**contains** - check if field elements start with the provided string value
- R method: `queryBuilder::in_string`.
- Sample rule: `queryRule(field = "Species", operator = "contains", value = "setos")`
- Sample rule as expression:
queryBuilder::in_string(Species, \"setos\")
- Argument `value` is required, should be a single character value.
**not_contains** - check if field elements do not start with the provided string value
- R method: `!queryBuilder::in_string`.
- Sample rule: `queryRule(field = "Species", operator = "not_contains", value = "etos")`
- Sample rule as expression:
!queryBuilder::in_string(Species, \"etos\")
- Argument `value` is required, should be a single value.
**ends_with** - check if field elements end with the provided string value
- R method: `endsWith`.
- Sample rule: `queryRule(field = "Species", operator = "ends_with", value = "etosa")`
- Sample rule as expression:
endsWith(Species, \"etosa\")
- Argument `value` is required, should be a single character value.
**not_ends_with** - check if field elements do not end with the provided string value
- R method: `!startsWith`.
- Sample rule: `queryRule(field = "Species", operator = "not_ends_with", value = "setos")`
- Sample rule as expression:
!endsWith(Species, \"etosa\")
- Argument `value` is required, should be a single value.
**is_empty** - check if field elements are an empty string
- R method: `queryBuilder::is_empty`.
- Sample rule: `queryRule(field = "Species", operator = "is_empty")`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "is_empty")))`
- Argument `value` is ignored.
**not_is_empty** - check if field elements are not an empty string
- R method: `!queryBuilder::is_empty`.
- Sample rule: `queryRule(field = "Species", operator = "not_is_empty")`
- Sample rule as expression:
`r utils::capture.output(queryToExpr(queryRule(field = "cyl", operator = "not_is_empty")))`
- Argument `value` is ignored.
In order to set custom operators please check `setQueryOperators()`.