Вы можете попробовать следующее:
#Data
data <- structure(list(User = 1:3, StartDate = c("24-04-2019", "31-07-2019",
"27-10-2015")), row.names = c(NA, -3L), class = "data.frame")
structure(list(User = 1:3, StartDate = c("24-04-2019", "31-07-2019",
"27-10-2015")), row.names = c(NA, -3L), class = "data.frame")
#Create list by id
List <- split(data,data$User)
#Endpoint
endpoint <- as.Date('30-04-2020','%d-%m-%Y')
#Build function for sequences
builddata <- function(x)
{
val1 <- x$User
valstart <- as.Date(x$StartDate,'%d-%m-%Y')
seqdate <- seq(valstart,endpoint,by='1 day')
datadates <- data.frame(User=rep(val1,length(seqdate)),Date=seqdate,stringsAsFactors = F)
return(datadates)
}
#Apply function
List <- lapply(List,builddata)
#Bind all
df <- do.call(rbind,List)
rownames(df)<-NULL
В итоге вы получите фрейм данных из 2296
строк и 2
столбцов. Я включаю несколько строк:
User Date
1 1 2019-04-24
2 1 2019-04-25
3 1 2019-04-26
4 1 2019-04-27
5 1 2019-04-28
6 1 2019-04-29