Je voudrais une fonction intégrée similaire à Col Moving Average() qui calcule un quantile mobile (roulant) d'une colonne. Vous pouvez l'appeler Col Moving Quantile() et/ou Col Moving Median().
J'ai écrit une fonction utilisateur (ci-jointe) qui fonctionne assez bien pour les petites tables, mais elle utilise une approche très inefficace. Je sais avec certitude qu'il existe des moyens beaucoup plus efficaces d'implémenter cette fonction qui n'impliquent pas de recalcul de la force brute à chaque étape de roulement. Ces approches dépassent mes capacités de codage.
</CODE></P><PRE><CODE class=" language-jsl">Add Custom Functions(
New Custom Function(
"x",
"Col Moving Quantile",
Function( {col, p, before, after, dt = Current Data Table()},
{coldata = Column( dt, col ) << Get As Matrix, from = Max( Row() - before, 1 ), to, to = Min( Row() + after, N Rows( dt ) )},
Quantile( p, coldata[Index( from, to )] )
)
)
// === Documentation ===
<<FORMULA category=""> )" ) //
<<PARAMETER></PARAMETER></FORMULA>