短編小説:私の分析を行っている間、私は曜日と週の値を忘れていました。私はそれらを私のテーブルに追加する必要があります。特定のタイムスタンプの後に行を追加する
長い物語: 私はこのテーブルを持っている:
library(tidyverse)
library(lubridate)
df<-structure(list(time = structure(c(1488987000, 1488988800, 1488990600,
1488992400, 1488994200, 1488996000, 1488997800, 1488999600, 1489001400,
1489003200, 1489005000, 1489006800, 1489069800, 1489071600, 1489073400,
1489075200, 1489077000, 1489078800, 1489080600, 1489082400, 1489084200,
1489086000, 1489087800, 1489089600, 1489091400, 1489093200, 1489156200,
1489158000, 1489159800, 1489161600, 1489163400, 1489165200, 1489167000,
1489168800, 1489170600, 1489172400, 1489174200, 1489176000, 1489177800,
1489179600, 1489411800, 1489413600, 1489415400, 1489417200, 1489419000
), class = c("POSIXct", "POSIXt"), tzone = structure("America/New_York", .Names = "TZ")),
low.yields = c(0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0)), .Names = c("time",
"low.yields"), row.names = c(NA, -45L), class = c("tbl_df", "tbl",
"data.frame"))
2列、タイムスタンプ、およびダミー変数があります。
タイムスタンプ16:00に表示可能な時間を持つすべての行を追加してレプリケートし、タイムスタンプを9:00に変更しますが、次の行と同じ日に変更したいとします。これは翌日である必要はないことに注意してください。ただし、週末になる可能性もあります。
今まで私は機能tibble::add_row
を見つけましたが、特定の行をどのように複製するかはわかりません。しかし、私が行う場合
df %>% add_row(.after = which(hour(df$time) == 16))
私は最初の値ではなく、すべての空白行を取得します。このとき
は、表は次のようになります。その後
time low.yields
... ...
26 2017-03-09 16:00:00 1
27 2017-03-10 09:30:00 0
... ...
、私はそれは次のようになりたいと思います。時間は下の行よりも30分少なく、low.yields値は上の行から継承されます。これは、16:00の時間がある行ごとに実行されます。
time low.yields
... ...
26 2017-03-09 16:00:00 1
27 2017-03-10 09:00:00 1
28 2017-03-10 09:30:00 0
... ...
予想される出力を追加してください。 –
あなたは '.after'だけを指定しましたが、値はどうですか? – akrun
こんにちは、申し訳ありません、私はさらに説明を追加しました。現時点では、正しい行を特定できないため、値を気にしませんでした。ご関心をお寄せいただきありがとうございます。 – johnnyheineken