私は Scala を初めて使用し、リストの固定ウィンドウで移動合計を計算したいと考えています。
例: リスト値 (1.0, 2.0, 3.0, 6.0, 7.0, 8.0, 12.0, 9.0, 4.0, 1.0) と期間 4 を指定すると、関数は (1.0, 3.0, 6.0, 12.0, 18.0, 24.0、33.0、36.0、33.0、26.0)
list.size < period の場合は累積合計を返します。
私はいくつかの試みをしました
def mavg(values: List[Double], period: Int): List[Double] = {
if (values.size <= period) (values.sum ) :: List.fill(period -1)(values.sum ) else {
val rest: List[Double] = mavg(values.tail, period)
(rest.head + ((values.head - values(period)))):: rest
}
}
しかし、私は
List(12.0, 18.0, 24.0, 33.0, 36.0, 33.0, 26.0, 26.0, 26.0, 26.0
これは正しくありません。結果を得るために Pyspark を使用したくありません。誰か助けてくれませんか?
どうもありがとう。