Ole*_*siy 1 filtering r date shiny
作为一个可怜的闪亮男人,无法解决一个简单的任务。
我在带有日期的数据框中有一行
crime.date <- strptime(incidents$REPORT_DAT, format = "%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)
我的日期输出看起来像这样。
[1] "2017-04-07 EDT" "2017-03-13 EDT" "2017-01-08 EST" "2017-01-25 EST" "2017-
01-03 EST" "2017-01-03 EST" "2017-01-03 EST"
[8] "2017-01-03 EST" "2017-01-03 EST" "2017-01-03 EST" "2017-01-03 EST" "2017-
01-04 EST" "2017-01-03 EST" "2017-01-03 EST"
Run Code Online (Sandbox Code Playgroud)
现在,我尝试形象化此过滤器选择的所有犯罪的选择。
# USER INTERFACE CODE
ui <- fluidPage(
titlePanel("Washington, DC crimes by date"),
column(4, wellPanel(
dateRangeInput('dateRange',
label = 'Filter crimes by date',
start = crime.date , end = crime.date
)
)),
column(6,
verbatimTextOutput("dateRange")
)
)
# SERVER CODE
server <- function(input, output, session) {
output$dateRangeText <- renderText({
paste("input$dateRange is",
paste(as.character(input$dateRange), collapse = " to ")
)
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
我相信我的错误在开始和结束之间,因为我将它们的唯一的Crime.date变量放入了。
我想要什么?我想选择开始和结束日期,并接收在此期间发生的所有事件(以文本形式输出现在是可以的)。
任何帮助深表感谢。
谢谢
奥列克西
要过滤您的数据框,我们可以使用
incidents %>% filter(REPORT_DAT >= input$dateRange[1] & REPORT_DAT <= input$dateRange[2])
Run Code Online (Sandbox Code Playgroud)
在renderDataTable声明中。下面给出一个工作示例。请注意,由于您不包括样本数据,因此我自己创建了一些样本数据。
希望这可以帮助!
library(dplyr)
library(shiny)
# Sample data
incidents = data.frame(REPORT_DAT=c('2018-01-01','2018-02-01','2018-03-01','2018-04-01','2018-05-01'))
# Convert character to Date
incidents$REPORT_DAT = as.Date(incidents$REPORT_DAT, format = "%Y-%m-%d")
ui <- fluidPage(
titlePanel("Washington, DC crimes by date"),
column(4, wellPanel(
dateRangeInput('dateRange',
label = 'Filter crimes by date',
start = as.Date('2018-01-01') , end = as.Date('2018-06-01')
)
)),
column(6,
dataTableOutput('my_table')
)
)
server <- function(input, output, session) {
output$my_table <- renderDataTable({
# Filter the data
incidents %>% filter(REPORT_DAT >= input$dateRange[1] & REPORT_DAT <= input$dateRange[2])
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)