Ich hätte gerne eine eingebaute Funktion ähnlich Col Moving Average(), die ein gleitendes (rollendes) Quantil einer Spalte berechnet. Sie könnten es Col Moving Quantile() und/oder Col Moving Median() nennen.
Ich habe eine Benutzerfunktion (im Anhang) geschrieben, die für kleine Tabellen gut genug funktioniert, aber einen sehr ineffizienten Ansatz verwendet. Ich weiß mit absoluter Sicherheit, dass es viel effizientere Möglichkeiten gibt, diese Funktion zu implementieren, die keine Brute-Force-Neuberechnung bei jedem Rollschritt beinhalten. Diese Ansätze gehen über meine Programmierfähigkeiten hinaus.
</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>