あるカラムから前の値を取得し、それを別のカラムに入れることについて少し質問があります。カラムからの前の値の取得とRの差分の取得
次のようにdput
出力である:
structure(list(Time = structure(c(1122855314, 1122855315, 1122855316,
1122855317, 1122855318, 1122855319, 1122855320, 1122955811, 1122955812,
1122955813, 1122955814, 1123027212, 1123027213, 1123027214, 1123027215,
1123027216, 1123027217), class = c("POSIXct", "POSIXt"), tzone = "Australia/Melbourne"),
`Inventory_{t}` = c(0, 2, 2, 2, 5, 8, 3, 7, 6, 6, 1, 0, 1,
1, 3, 3, 3), `Inventory_{t-1}` = c(0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0), `Delta Inventory_{t-1}` = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), .Names = c("Time",
"Inventory_{t}", "Inventory_{t-1}", "Delta Inventory_{t-1}"), row.names = c(NA,
-17L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x00000000028b0788>)
I「はInventory_ {T「埋める」たい私は次のように(簡単xts
オブジェクトに変換することができる)data.table
オブジェクトを持っています-1} "と呼び、1秒前に" Inventory_ {t} "にあった値を取り、それをそのセルに入れます。同様に、「デルタ・インベントリ_ {t-1}」については、Delta Inventory_{t-1} = Inventory_{t-1} - Inventory_{t-2}
と同じにしておきたいと思います。毎日の開始時に、「インベントリ_ {t-1}」および「デルタ・インベントリ_ {T-1}」この情報を0
でなければならない、私はこのようになります新しいdata.table
/xts
オブジェクトを取得したいと思います:物事
structure(list(Time = structure(c(1122855314, 1122855315, 1122855316,
1122855317, 1122855318, 1122855319, 1122855320, 1122955811, 1122955812,
1122955813, 1122955814, 1123027212, 1123027213, 1123027214, 1123027215,
1123027216, 1123027217), class = c("POSIXct", "POSIXt"), tzone = "Australia/Melbourne"),
`Inventory_{t}` = c(0, 2, 2, 2, 5, 8, 3, 7, 6, 6, 1, 0, 1,
1, 3, 3, 3), `Inventory_{t-1}` = c(0, 0, 2, 2, 2, 5, 8, 0,
7, 6, 6, 0, 0, 1, 1, 3, 3), `Delta Inventory_{t-1}` = c(0,
0, 2, 0, 0, 3, 3, 0, 7, -1, 0, 0, 0, 1, 0, 2, 0)), .Names = c("Time",
"Inventory_{t}", "Inventory_{t-1}", "Delta Inventory_{t-1}"), row.names = c(NA,
-17L), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x00000000028b0788>)
があり、この問題は非常に簡単です私がループを使って解決するなら、私は非常に速い方法でこれを行うことを望んでいたので、誰もがこれで私を助けることができたら、私は本当にそれを感謝します、事前に感謝します。
してください、 'data.table'パッケージで'シフト() '関数を見てみましょう。 – Uwe
@Uweありがとう、それゆえ、それは 'シフト(z $'インベントリ_ {t} '、タイプ="遅れ "、塗りつぶし= 0)'の外観では、動作しているようだが、私は一日でそれを行うことができますか? (すなわち、 'Inventory_ {t-1}'列が0を最初の日として0にするにはどうすればいいですか?) – reallybadstatdude