Estoy buscando una fórmula de columna elgante para reemplazar una pequeña declaración 'para cada fila'.
Tengo una tabla con un valor y una fecha (y otras cosas). Las fechas están espaciadas irregularmente. Estoy buscando una fórmula para un promedio móvil del valor, sensible a la fecha en que se midió. Esto a veces incluye solo dos valores, pero puede incluir docenas.
El siguiente script funciona, pero requiere que se llame al script. Espero una fórmula que se pueda almacenar en la propia columna.
dt = current data table();
dt << new column ("LocalAverage", numeric);
for (ii=1, ii<=nrows(dt), ii++,
:LocalAverage[ii] = mean(:value[dt << getrowswhere(Abs(:date - :date[ii]) < 5*24*60*60)])
);
(promedio de más de 5 días)
Debo estar perdiendo algo.......
El código que proporcioné es una fórmula de columna, no una secuencia de comandos independiente.
Creo que la siguiente fórmula funcionará ... o algo parecido.
ckDate = :date[row()];
mean(:value[dt << getrowswhere(Abs(:date - ckDate) < 5*24*60*60)]);