Subsets an mts object by date. This function
always filters to day-boundaries. For sub-day filtering, use
mts_filterDatetime()
.
Dates can be anything that is understood by MazamaCoreUtils::parseDatetime()
including either of the following recommended formats:
"YYYYmmdd"
"YYYY-mm-dd"
Timezone determination precedence assumes that if you are passing in
POSIXct
values then you know what you are doing:
get timezone from startdate
if it is POSIXct
use passed in timezone
get timezone from mts
mts_filterDate( mts = NULL, startdate = NULL, enddate = NULL, timezone = NULL, unit = "sec", ceilingStart = FALSE, ceilingEnd = FALSE )
mts | mts object. |
---|---|
startdate | Desired start date (ISO 8601). |
enddate | Desired end date (ISO 8601). |
timezone | Olson timezone used to interpret dates. |
unit | Units used to determine time at end-of-day. |
ceilingStart | Logical instruction to apply
|
ceilingEnd | Logical instruction to apply
|
A subset of the incoming mts time series object.
(A list with meta
and data
dataframes.)
The returned data will run from the beginning of startdate
until
the beginning of enddate
-- i.e. no values associated
with enddate
will be returned. The exception being when
enddate
is less than 24 hours after startdate
. In that case, a
single day is returned.
library(MazamaTimeSeries) example_mts %>% mts_filterDate( startdate = 20190703, enddate = 20190706 ) %>% mts_extractData() %>% dplyr::pull(datetime) %>% range()#> [1] "2019-07-03 07:00:00 UTC" "2019-07-06 06:00:00 UTC"