我有一个像这样的数据框:
source_data <-
data.frame(
id = c(seq(1,3)),
start = c(as.Date("2020-04-04"), as.Date("2020-04-02"), as.Date("2020-04-03")),
end = c(as.Date("2020-04-08"), as.Date("2020-04-05"), as.Date("2020-04-05"))
)
我想为每个id创建一个日期序列,使其在起始日期和结束日期之间的每一天都被包含,并将其放入另一个数据框中。因此结果应该如下所示:
result <-
data.frame(
id = c(1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3),
date = c(
as.Date("2020-04-04"),
as.Date("2020-04-05"),
as.Date("2020-04-06"),
as.Date("2020-04-07"),
as.Date("2020-04-08"),
as.Date("2020-04-02"),
as.Date("2020-04-03"),
as.Date("2020-04-04"),
as.Date("2020-04-05"),
as.Date("2020-04-03"),
as.Date("2020-04-04"),
as.Date("2020-04-05")
)
)
我从这个日期序列开始,但如何将我的source_data数据框加入其中呢?
solution <-
data.frame(
date = seq(min(source_data$start), max(source_data$end), by = 1)
)
Map
和lengths
!+1 - ThomasIsCoding