Error: interval is not valid
tungttnguyen opened this issue · 6 comments
Hello,
I want to create a time series at 1 minute interval and fill unavailable time slot with 1
. However the code returned Error: interval is not valid
. Did I miss anything obvious? Thanks!
library(tidyverse)
library(padr)
df <- tibble(
time = c("09-11-2018 11:00:00", "09-11-2018 11:02:16",
"09-11-2018 11:05:00", "09-11-2018 11:09:35",
"09-11-2018 11:13:03", "09-11-2018 11:16:00"),
value = c(3, 5, 2, 4, 6, 1))
df <- df %>%
mutate(time = parse_datetime(time, "%d-%m-%Y %H:%M:%S"))
df
#> # A tibble: 6 x 2
#> time value
#> <dttm> <dbl>
#> 1 2018-11-09 11:00:00 3
#> 2 2018-11-09 11:02:16 5
#> 3 2018-11-09 11:05:00 2
#> 4 2018-11-09 11:09:35 4
#> 5 2018-11-09 11:13:03 6
#> 6 2018-11-09 11:16:00 1
df %>%
thicken('1 minute')
#> Error: interval is not valid
df %>%
pad('minute', start_val = as.POSIXct('09-11-2018 11:00:00', tz = 'UTC'))
#> Error: interval is not valid
Created on 2018-11-09 by the reprex package (v0.2.1.9000)
The interval in thicken
is any character string that would be accepted by seq.Date or seq.POSIXt. (which it calls). The functions use the abbreviation "min", not the full word "minute". This works
df %>%
thicken('1 min')
Thanks @EdwinTh! However when I ran these lines I got the other error
df %>% pad('min', start_val = as.POSIXct('09-11-2018 11:00:00', tz = 'UTC'))
Error: Estimated 1056616516 returned rows, larger than 1 million in break_above
How could it be when there is only 16 minutes between the start and end time?
Because POSIXct
expects the data to be yyyy-mm-dd
so your start_val
started in 9 AD.
Note that you don't need to specify the start_val
if it is equal to the first value in your time variable.
Note further that you cannot pad this data frame on the minute interval, because the observations are not of the same whole minute (they differ on the second level).
Thanks @EdwinTh! I was hoping that padr
can somehow deal with the irregular intervals. I'll have to stick with manual method then
Yes you can, using pad_cust
.
Thanks @EdwinTh! Can you post a solution for the example I posted earlier? I think it can be useful for other people too