This function evaluates the track expression for all iterator intervals and
translates this value into an index based on the breaks. This index is then
used to address the lookup table and return the according value. More than
one 'expr'-'breaks' pair can be used. In that case 'lookup_table' is
addressed in a multidimensional manner, i.e. 'lookup_table[i1, i2, ...]'.
The range of bins is determined by 'breaks' argument. For example: 'breaks =
c(x1, x2, x3, x4)' represents three different intervals (bins): (x1, x2],
(x2, x3], (x3, x4].
If 'include.lowest' is 'TRUE' then the lowest value is included in the first
interval, i.e. in [x1, x2].
'force.binning' parameter controls what should be done when the value of
'expr' exceeds the range determined by 'breaks'. If 'force.binning' is
'TRUE' then values smaller than the minimal break will be translated to
index 1, and the values exceeding the maximal break will be translated to
index 'M-1' where 'M' is the number of breaks. If 'force.binning' is 'FALSE'
the out-of-range values will produce 'NaN' values.
Regardless of 'force.binning' value if the value of 'expr' is 'NaN' then
result is 'NaN' too.
The order inside the result might not be the same as the order of intervals.
Use 'intervalID' column to refer to the index of the original interval from
the supplied 'intervals'.
If 'intervals.set.out' is not 'NULL' the result (without 'columnID' column)
is saved as an intervals set. Use this parameter if the result size exceeds
the limits of the physical memory.