Flux remove spikes - quantile() access to its _value

I’m writing filter to remove spikes in our datasets (for visualization). Is possible to write this in flux? Comparing based on quantile, that is computed from dataset and applied in filter.

data = from(bucket: "meteo")
  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
  |> filter(fn: (r) =>
    r._measurement == "BREB" and
    r._field == "TA_1_1_1" and
    r.location == "RUT"
  )
  |> aggregateWindow(
       every: 10m,
       fn: mean)
       
quantUp = data
  |> quantile(
    q: 0.95,
    method: "exact_mean"
  )

quantLo = data
  |> quantile(
    q: 0.05,
    method: "exact_mean"
  )

here is problem (first row):

 range_q = quantUp-quantLo 
 range_q_abs = math.abs(x:range_q)
 low = quantLo - range_q_abs * 0.1
 up = quantUp + range_q_abs * 0.1

and apply filter…

data
  |> filter(fn: (r) =>
    r._value < up and
    r._value > low
  )

Flux always returning comparision or type error quantUp/quantLo

- expected float but found [A] or
- expected {A with _value:B} but found [C]

How to access to quantile float _value?