【发布时间】:2020-08-18 09:59:16
【问题描述】:
我正在尝试构建一个基于侧面板输入显示绘图的 R 闪亮页面。但是,我希望侧边栏上的输入具有反应性,这意味着一个输入中的选择基于先前输入的选择。例如,由于测试 1 不是在 5 月进行的,因此通过选择 5 月之前的日期,它将过滤掉测试 1 的相关输入选择。
我的猜测是每个侧边栏都会过滤后续响应,但我不确定如何执行此操作。这是我到目前为止所拥有的,我已经包含了一个我正在使用的数据框的示例。
最终目标是能够生成一个反应图,将测试结果显示为散点图或线图,通过随时间推移比较单个结果或将结果相互比较(即 X 轴上的结果 X Y 轴上的结果 Y)。
Dataframe
Name Test Date Result X Result Y Result Z
John Smith Test 1 2020-03-01 1.5 1.7 10
Sally Smith Test 2 2020-04-01 2.2 5.2 11
John Smith Test 3 2020-05-01 3.1 3.4 14
Sally Smith Test 2 2020-05-01 1.4 4.2 12
John Smith Test 3 2020-04-01 1.5 4.4 15
John Smith Test 1 2020-04-01 1.6 5.5 23
Sally Smith Test 1 2020-03-01 1.6 6.6 12
library(tidyverse)
library(shiny)
# Define UI for application
ui <- navbarPage("Title",
tabPanel("Title 1",
sidebarPanel(
h4("Title 1"),
selectInput("Name_Select", label = "Select Name", choices = df$Name),
dateRangeInput("dates", label = "Dates",
start = max(df$Date),
end = min(df$Date),
min = min(df$Date),
max = max(df$Date)),
selectInput("Test_Select", label = "Select Test", choices = df$Test),
selectInput("x_axis", label = "Variable 1", choices = select(df, Date, Result X:Result Z)),
selectInput("y_axis", label = "Variable 2", choices = select(df, Date, Result X:Result Z))),
mainPanel(plotOutput("Title1graph"))),
tabPanel("Title 2",
sidebarPanel(
h4("Title 2")))
)
# Define server logic
server <- function(input, output) {
output$Title1graph <- renderPlot({
plot(input$x_axis, input$y_axis)
})
}
# Run the application
shinyApp(ui = ui, server = server)
【问题讨论】: