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