Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # start "2017-10-28 00:00:00"
- # end "2017-10-28 23:59:00"
- # unit A character string, containing one of "sec", "min", "hour", "day", "DSTday", "week", "month", "quarter" or "year"
- interval_matrix <- function(df,interv,start,end,unit){
- interv <- enquo(interv)
- time_cols <- seq.POSIXt(as_datetime(ymd_hms(start)),
- as_datetime(ymd_hms(end)),
- by="min")
- time_str <- function(x){
- x %>% lubridate::year() %>% as.character() %>% str_pad(2,side="left",pad="0") -> yy
- x %>% lubridate::month() %>% as.character() %>% str_pad(2,side="left",pad="0") -> mo
- x %>% lubridate::day() %>% as.character() %>% str_pad(2,side="left",pad="0") -> dd
- x %>% lubridate::hour() %>% as.character() %>% str_pad(2,side="left",pad="0") -> hh
- x %>% lubridate::minute() %>% as.character() %>% str_pad(2,side="left",pad="0") -> mm
- x %>% lubridate::second() %>% as.character() %>% str_pad(2,side="left",pad="0") -> ss
- paste0(yy,"_",mo,"_",dd,"_",hh,"_",mm,"_",ss)
- }
- ltc <- length(time_cols)
- for(i in 1:ltc){
- p <- time_str(time_cols[i])
- p <- paste0("time_",p)
- df[[p]] <- time_cols[i] %within% df[[interval]] # UNDER CONSTRUCTION - NEED TO TURN QUOSURE INTO STRING FOR THIS TO WORK
- }
- }
Add Comment
Please, Sign In to add comment