失踪前值日期比方说,我有以下data.table
填补
library(data.table)
set.seed(123)
df <- as.data.table(data.frame(date = c("2017-01-01", "2017-01-05", "2017-01-08", "2017-01-01", "2017-01-05", "2017-01-08"),
value = rnorm(6),
mygroup = rep(LETTERS[1:2], each = 3)))
我要填写与组“最后”值缺少的日期。我找到的最接近的是this question,它显示了如何在不分组的情况下完成此操作。
all_dates <- seq(from = as.Date("2017-01-01"),
to = as.Date("2017-01-08"),
by = "days")
df[J(all_dates), roll=Inf]
然而,我需要由组中的错误要做到这一点,并使用by
结果
错误
[.data.table
(DF,J(all_dates),辊=天道酬勤,通过= MYGROUP): “通过”或“keyby”提供但不Ĵ
请不要'DF [日期:= as.Date(日期)]',而比要求的日期打字无数次。无论如何,我想'df [df [,。(date = seq(first(date),last(date),by =“day”)),by = mygroup] on =。(mygroup,date),roll = -Inf]'可以做到..? – Frank
是否每个团队都有不同的日期范围,或者每个团队的日期范围是否相同(本例中的Jan 1-8)?在后一种情况下,有一些使用CJ的几乎愚弄,如https://stackoverflow.com/a/10473931/ – Frank
@Frank每个组可能有不同的范围。您最初的建议目前导致错误的'on'参数应该是一个已命名的原子向量oc列名称,指示'i'中的哪些列应该与'x'中的哪些列结合在一起。' – cdeterman