2017-10-03 10 views
-1

アイテムIDごとに時間の経過とともに購入を表示するデータシリーズがあります。購入の習慣は不規則であるため、このデータを時間とともにアイテムIDで円滑にしたいと思います。R:商品によるスムージング時系列データ

アイテムの定期的な注文(日々)がある場合は、注文とストッキングのレベルをより適切にプロット/評価することができます。ただし、余分なものを購入する人もいるので、補充する必要はありません。彼らは唯一の週に1回注文することができので、1日の合計が実際に製品の週の価値がある可能性があるのでこれはその後、(私たちのパーレベルのデータをゆがめるさ

再現例:。

POData <- structure(list(a = structure(c(1499918400, 1499918400, 1499918400, 
1499918400, 1499918400, 1499918400, 1496376000, 1497412800, 1497412800, 
1497412800, 1497412800, 1497412800, 1497240000, 1497412800, 1497412800, 
1497412800, 1501214400, 1496376000, 1496376000, 1496376000, 1496289600, 
1496289600, 1496289600, 1496289600, 1496289600, 1496289600, 1501214400, 
1501214400, 1501214400, 1501214400), class = c("POSIXct", "POSIXt" 
), tzone = ""), b = c(446032L, 101612L, 37740L, 482207L, 152360L, 
4483L, 482207L, 141729L, 81192L, 482207L, 85273L, 142955L, 460003L, 
142955L, 17752L, 29763L, 309189L, 361905L, 17396L, 410762L, 437420L, 
17752L, 18002L, 150698L, 163342L, 433332L, 150587L, 44159L, 433332L, 
446032L), c = c(4, 1, 25, 1, 1, 1, 3, 12, 12, 1, 1, 1, 300, 1, 
1, 2, 6, 6, 2, 1, 1, 1, 1, 1, 1, 1, 40, 2, 1, 2)), .Names = c("PO Date", 
"PS Item ID", "PO Qty"), row.names = c(NA, 30L), class = "data.frame") 

これはおそらくです簡単な質問が、私は誰かがこれを行うための簡単な方法を持っている願っています。

答えて

0

あなたはで、この

require(zoo) 
require(dply) 

    df2 = POData %>% 
    arrange(`PS Item ID`,`PO Date`)%>% 
    group_by(`PS Item ID`)%>% 
    mutate(temp_lag1 = lag(`PO Qty`))%>% 
    mutate(temp.5.previous = rollapply(data = temp_lag1, 
            width = 2, 
            FUN = mean, 
            align = "left", 
            fill = `PO Qty`, 
            na.rm = T)) 

ような何かそれ、本質的にグループを使用することができますとし、PS Item IDPO Dateで手配します。 width引数はmutateで、移動平均をどの程度戻すかを指定します。現時点では、あなたのデータはプロダクトIDで広範囲に及んでいないため、1に設定されています。

+0

これは一部では機能しますが、多くの最終的な値がNANとして表示されています。 –

関連する問題