我尝试使用不同的答案扩展数据框中的序列 https://stackoverflow.com/questions/11494511/expanding-a-sequence-in-a-data-frame到我的数据框,但我尝试的任何方法都不起作用。
样本数据
library(dplyr)
p1 <- c(1:5)
p2 <- as.Date(c("2013-01-01","2013-01-22","2014-02-01","2014-05-12","2015-02-22"))
p3 <- as.Date(c("2013-01-11","2013-01-30","2014-02-20","2014-05-22","2015-02-28"))
p4 <- c(11,9,20,11,7)
df2 <- data_frame(p1,p2,p3,p4)
names(df2) <- c("ID", "StartDate", "EndDate", "NoDays")
df2
期望的结果
ID datelist NoDays
1 2013-01-01 1
1 2013-01-02 1
1 2013-01-03 1
etc..
1 2013-01-10 1
1 2013-01-11 1
2 2013-01-22 1
2 2013-01-23 1
etc.
2 2013-01-28 1
2 2013-01-29 1
2 2013-01-30 1
以下是三个代码试验 - 我在多种变体中尝试了所有这些代码(例如 apply 系列的各个成员),但都失败了(即给出了不同的错误消息):
代码示例1
datelist <- seq.Date(from = df2$StartDate, to=df2$StartDate, by="days")
代码示例2
datelist <- seq.Date(from = df2$StartDate, by="days", length.out = df2$NoDays)
代码示例2
datelist <- apply(df2, 1, seq.Date(from = df2$StartDate, to=df2$StartDate, by="days"))