Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R dateInputRange函数中断直方图_R_Shiny - Fatal编程技术网

R dateInputRange函数中断直方图

R dateInputRange函数中断直方图,r,shiny,R,Shiny,我试图让直方图对dateInputRange函数做出反应。我的应用程序已经开始工作了,只有一个年龄滑块输出到柱状图,还有一个位于组图下方的结果表。我在代码中添加了dateInputRange,并根据源数据中要过滤的列(基于日期)过滤输出,应用程序仍然启动,但直方图不再绘制。可渲染文件仍然会对滑块输入作出反应,但对于直方图,我只得到一个空白的灰色图 当我启动应用程序时,控制台会显示以下消息: “警告在==。默认值(c(“10/11/2016”、“10/16/2016”、“11/22/2016”、“

我试图让直方图对dateInputRange函数做出反应。我的应用程序已经开始工作了,只有一个年龄滑块输出到柱状图,还有一个位于组图下方的结果表。我在代码中添加了dateInputRange,并根据源数据中要过滤的列(基于日期)过滤输出,应用程序仍然启动,但直方图不再绘制。可渲染文件仍然会对滑块输入作出反应,但对于直方图,我只得到一个空白的灰色图

当我启动应用程序时,控制台会显示以下消息:

“警告在<代码>==。默认值(c(“10/11/2016”、“10/16/2016”、“11/22/2016”、“11/21/2016”),: 较长的对象长度不是较短对象长度的倍数“

代码如下:

ui <- fluidPage(


   titlePanel("ED Admissions"),


   sidebarLayout(
      sidebarPanel(
         sliderInput("AgeInput","Age",min = 3, max = 125, c(3,65)),

         dateRangeInput("DateInput", "Date")
          ),


      mainPanel(
         plotOutput("AgePlot"),
         br(), br(),
         tableOutput("ClientTable")


      )
   )
)

# Define server logic required to draw a histogram
server <- function(input, output) {

  output$AgePlot <- renderPlot({
    filtered <-
    edadmits %>%
      ##filtering is by variables in the dataset
      filter(Client_AGE >= input$AgeInput[1],
             Client_AGE <= input$AgeInput[2],
             Discharge_Claim_Start_Date == input$DateInput
             )

    ggplot(filtered, aes(Client_AGE))+
      geom_histogram()
  })

  output$ClientTable <- renderTable({
    filtered <-
      edadmits %>%

      filter(Client_AGE >= input$AgeInput[1],
             Client_AGE <= input$AgeInput[2])

    filtered
  })
}


shinyApp(ui = ui, server = server)

ui这可能是由于日期的问题,因此请尝试使用
strftime()
重新格式化日期。此外,为了简化代码,您可以像这样使用
reactive

server <- function(input, output) {
  filtered_data <- reactive({
    edadmits %>%
      filter(Age >= input$AgeInput[1],
             Age <= input$AgeInput[2],
             Discharge.Date >= input$DateInput[1],
             Discharge.Date <= input$DateInput[2]) %>%
      mutate(Discharge.Date=strftime(Discharge.Date, "%Y/%m/%d"))
  })

  output$AgePlot <- renderPlot(ggplot(filtered_data(), aes(Age))+geom_histogram())

  output$ClientTable <- renderTable(filtered_data())
}
server=input$AgeInput[1],
年龄=输入$DateInput[1],
出院日期%
突变(Discharge.Date=strftime(Discharge.Date,“%Y/%m/%d”))
})

输出$AgePlot Replace
Discharge\u Claim\u Start\u Date==输入$DateInput
Discharge\u Claim\u Start\u Date>=输入$DateInput[1],Discharge_Claim_Start_DateThank,但这似乎不起作用,绘图仍然没有渲染。控制台中的错误消息确实随您建议的更改而消失,但应用程序的行为是相同的。将用于可复制的示例。因此,在创建可复制示例的过程中,我使用dateInput框与我的dum一起工作我的数据,但它仍然不能与我的真实数据一起工作。可能与我的原始?OP编辑中数据如何读入R有关,以显示可复制的示例。谢谢,看起来确实日期是罪魁祸首。它们被作为“字符”读入,虽然从我所知道的来看,dateRangeInput应该可以。将研究重新格式化,我对这方面非常陌生,今天下午无法使其工作,但我认为这超出了这个问题的范围。
server <- function(input, output) {
  filtered_data <- reactive({
    edadmits %>%
      filter(Age >= input$AgeInput[1],
             Age <= input$AgeInput[2],
             Discharge.Date >= input$DateInput[1],
             Discharge.Date <= input$DateInput[2]) %>%
      mutate(Discharge.Date=strftime(Discharge.Date, "%Y/%m/%d"))
  })

  output$AgePlot <- renderPlot(ggplot(filtered_data(), aes(Age))+geom_histogram())

  output$ClientTable <- renderTable(filtered_data())
}