Вы также можете сделать что-нибудь, используя Vanilla R
.Например, со следующей функцией:
myDateFunction <-function(dealName,stdate,endate){
firstDay <- cut(as.Date(stdate,format = "%m/%d/%Y"), "month")
Start <-seq(as.Date(firstDay), as.Date(endate,format = "%m/%d/%Y"), by = "month")
DealName <- rep(dealName,length(Start))
plusOne<-seq(as.Date(firstDay), by = "month", length = 2)[2]
End<-seq(as.Date(plusOne),length=4,by="months")-1
data <- data.frame(DealName,Start,End)
data$Start[1] <- as.Date(stdate,format = "%m/%d/%Y")
data$End[-1][3] <- as.Date(endate,format = "%m/%d/%Y")
return(data)
}
Если мы назовем это так:
myDateFunction("Samsung Mobile","3/5/2018","6/23/2018")
Создает следующий вывод:
DealName Start End
1 Samsung Mobile 2018-03-05 2018-03-31
2 Samsung Mobile 2018-04-01 2018-04-30
3 Samsung Mobile 2018-05-01 2018-05-31
4 Samsung Mobile 2018-06-01 2018-06-23