Skip to contents

dashboardr provides two date input types for filtering time-based data: date (single date picker) and daterange (start/end date pair).

Date Picker

Use type = "date" to add a single date picker that filters a date column in your data:

page <- create_page("Events") %>%
  add_input(
    input_id = "event_date",
    type = "date",
    label = "Select Date",
    filter_var = "date",
    value = "2020-01-01"
  ) %>%
  add_viz(
    type = "timeline",
    time_var = "date",
    y_var = "count"
  )

The value parameter sets the initial date. Dates should be provided in "YYYY-MM-DD" format.

You can also constrain the date range with min and max:

page <- create_page("Constrained") %>%
  add_input(
    input_id = "start",
    type = "date",
    label = "Start Date",
    filter_var = "date",
    value = "2020-01-01",
    min = "2018-01-01",
    max = "2022-12-31"
  )

Date Range

Use type = "daterange" to add a pair of date pickers (start and end) that filter data to a date window:

page <- create_page("Time Window") %>%
  add_input(
    input_id = "period",
    type = "daterange",
    label = "Date Range",
    filter_var = "date",
    value = c("2018-01-01", "2021-12-31"),
    min = "2000-01-01",
    max = "2022-12-31"
  )

The value parameter takes a two-element character vector: c(start_date, end_date).

Integration with Cross-Tab Filtering

Date inputs work with dashboardrโ€™s cross-tab filtering system. When a user changes the date, all charts on the page that use the filtered variable are updated automatically.

data <- data.frame(
  date = seq(as.Date("2020-01-01"), as.Date("2020-12-31"), by = "month"),
  sales = round(runif(12, 100, 500)),
  category = rep(c("A", "B"), 6)
)

dashboard <- create_dashboard(
  title = "Sales Dashboard",
  data = data
) %>%
  add_page(
    create_page("Sales") %>%
      add_input(
        input_id = "date_range",
        type = "daterange",
        label = "Period",
        filter_var = "date",
        value = c("2020-01-01", "2020-12-31")
      ) %>%
      add_viz(
        type = "bar",
        x_var = "category",
        title = "Sales by Category",
        cross_tab_filter_vars = "date"
      ) %>%
      add_viz(
        type = "timeline",
        time_var = "date",
        y_var = "sales",
        title = "Sales Over Time",
        cross_tab_filter_vars = "date"
      )
  )

Requirements

Date inputs require enable_inputs() to be active on the page. This is added automatically when you use add_input() via the page builder, but if you are building pages manually, make sure to include it.