Expressions are used to define filter logic for passing to a Dataset
Scanner.
Expression$scalar(x) constructs an Expression which always evaluates to
the provided scalar (length-1) R value.
Expression$field_ref(name) is used to construct an Expression which
evaluates to the named column in the Dataset against which it is evaluated.
Expression$compare(OP, e1, e2) takes two Expression operands, constructing
an Expression which will evaluate these operands then compare them with the
relation specified by OP (e.g. "==", "!=", ">", etc.) For example, to filter
down to rows where the column named "alpha" is less than 5:
Expression$compare("<", Expression$field_ref("alpha"), Expression$scalar(5))
Expression$and(e1, e2), Expression$or(e1, e2), and Expression$not(e1)
construct an Expression combining their arguments with Boolean operators.
Expression$is_valid(x) is essentially (an inversion of) is.na() for Expressions.
Expression$in_(x, set) evaluates x and returns whether or not it is a member of the set.