我的问题类似于这个问题,询问如何在
crosstalk::filter_select
中设置默认过滤器选择。但是,我需要对日期列的 R
进行默认选择。我创建了一个可重现的示例,其中包含虚拟数据、过滤器和分类过滤器的工作默认选择。我希望能够对 date slider 做类似的事情。我应该如何更改我的 JavaScript,以便选择明天和后天之间的日期范围?
crosstalk::filter_slider
library(crosstalk)
library(htmltools)
# dummy data
dat <- data.frame(
date = Sys.Date() + 0:4,
letter = letters[1:5],
number = 0:4 + 1
)
# shared data
dat_shared <- crosstalk::SharedData$new(dat)
# custom js (contains unfinised code for date filter!)
custom_js <- shiny::tags$script('
// this is not complete and it does not work
function filter_date(){
document.getElementById("date")
}
$(document).ready(filter_date);
// this is an example how a default selection can be done using JS which works
// it selects a for the filter (the default is that nothing is selected)
// I want to do something similar, but for a date filter
function filter_cat(){
document.getElementById("filter_cat").getElementsByClassName("selectized")[0].selectize.setValue("a",false)
}
$(document).ready(filter_cat);
'
)
# filters for the widget
filter_cat <- crosstalk::filter_select(
"filter_cat", "Select a letter",
dat_shared, ~letter, multiple = F
)
filter_date <- crosstalk::filter_slider(
"filter_date", "Date",
dat_shared, ~date
)
# showing the widget in RStudio
htmltools::browsable(htmltools::tagList(
custom_js, filter_date, filter_cat
))