The easiest way to filter time series date or date-time vectors. Returns a
logical vector indicating which date or date-time values are within a range.
filter_by_time() for the
between_time(index, start_date = "start", end_date = "end")
A date or date-time vector.
The starting date
The ending date
Pure Time Series Filtering Flexibilty
end_date parameters are designed with flexibility in mind.
Each side of the
time_formula is specified as the character
'YYYY-MM-DD HH:MM:SS', but powerful shorthand is available.
Some examples are:
start_date = '2013', end_date = '2015'
start_date = '2013-01', end_date = '2016-06'
start_date = '2013-01-05', end_date = '2016-06-04'
start_date = '2013-01-05 10:22:15', end_date = '2018-06-03 12:14:22'
start_date = '2013', end_date = '2016-06'
Key Words: "start" and "end"
Use the keywords "start" and "end" as shorthand, instead of specifying the actual start and end values. Here are some examples:
Start of the series to end of 2015:
start_date = 'start', end_date = '2015'
Start of 2014 to end of series:
start_date = '2014', end_date = 'end'
All shorthand dates are expanded:
start_date is expanded to be the first date in that period
end_date side is expanded to be the last date in that period
This means that the following examples are equivalent (assuming your index is a POSIXct):
start_date = '2015' is equivalent to
start_date = '2015-01-01 + 00:00:00'
end_date = '2016' is equivalent to
2016-12-31 + 23:59:59'
logical vector the same length as
index indicating whether or not
the timestamp value was within the
This function is based on the
tibbletime::filter_time() function developed by Davis Vaughan.
Time-Based dplyr functions:
summarise_by_time() - Easily summarise using a date column.
mutate_by_time() - Simplifies applying mutations by time windows.
pad_by_time() - Insert time series rows with regularly spaced timestamps
filter_by_time() - Quickly filter using date ranges.
filter_period() - Apply filtering expressions inside periods (windows)
slice_period() - Apply slice inside periods (windows)
condense_period() - Convert to a different periodicity
between_time() - Range detection for date or date-time sequences.
slidify() - Turn any function into a sliding (rolling) function
library(tidyverse) library(tidyquant) library(timetk) index_daily <- tk_make_timeseries("2016-01-01", "2017-01-01", by = "day") index_min <- tk_make_timeseries("2016-01-01", "2017-01-01", by = "min") # How it works # - Returns TRUE/FALSE length of index # - Use sum() to tally the number of TRUE values index_daily %>% between_time("start", "2016-01") %>% sum() # ---- INDEX SLICING ---- # Daily Series: Month of January 2016 index_daily[index_daily %>% between_time("start", "2016-01")] # Daily Series: March 1st - June 15th, 2016 index_daily[index_daily %>% between_time("2016-03", "2016-06-15")] # Minute Series: index_min[index_min %>% between_time("2016-02-01 12:00", "2016-02-01 13:00")] # ---- FILTERING WITH DPLYR ---- FANG %>% group_by(symbol) %>% filter(date %>% between_time("2016-01", "2016-01"))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.