Ich möchte eine integrierte Funktion ähnlich Col Moving Average (), die ein sich bewegendes (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 bin mir absolut sicher, dass es viel effizientere Möglichkeiten gibt, diese Funktion zu implementieren, bei denen nicht bei jedem Rollschritt eine Brute-Force-Neuberechnung erforderlich ist. Diese Ansätze gehen über meine Codierungsfä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>