Я не знаком с Shiny, и мне было интересно, не могли бы вы помочь мне с динамической фильтрацией. На основании уроков, которые я прочитал, я смог придумать это до сих пор. Проблема, с которой я сталкиваюсь, заключается в том, что «Freq» не изменяется динамически, когда выбран конкретный тип Dept, Gender и Admit. По сути, я бы хотел, чтобы частота уменьшалась до одного значения, когда в каждом поле есть выбор. Как я могу получить выбор пользователя в разделе «Выберите пол» и «Выбрать тип допуска:», чтобы я мог использовать его для индексации кадра данных? Спасибо.
library(shiny)
Admit<-c("Admitted","Rejected","Admitted", "Rejected", "Admitted", "Rejected", "Admitted",
"Rejected","Admitted", "Rejected", "Admitted","Rejected","Admitted", "Rejected","Admitted","Rejected", "Admitted", "Rejected",
"Admitted","Rejected", "Admitted" ,"Rejected","Admitted", "Rejected")
Gender<-c("Male","Male","Female","Female", "Male", "Male", "Female", "Female", "Male","Male","Female","Female",
"Male","Male","Female","Female","Male", "Male", "Female", "Female","Male","Male","Female","Female")
Dept<-c( "A","A", "A", "A", "B", "B", "B", "B", "C", "C", "C", "C", "D", "D", "D", "D", "E", "E", "E", "E", "F", "F", "F", "F")
Freq<-c("512", "313", "89", "19", "353", "207", "17", "8", "120", "205", "202", "391", "138", "279", "131", "244", "53", "138",
"94", "299", "22", "351", "24", "317")
df<-data.frame(Admit,Gender,Dept, Freq)
#df<-data.frame(UCBAdmissions)
# Define UI ----
ui <- fluidPage(
titlePanel("UC Berkley Admissions"),
sidebarLayout(
sidebarPanel(
helpText("Apply Filter to achieve desired results."),
selectInput('Dept', choices = c("-",df$Dept), label = 'Select a Dept'),
conditionalPanel(condition = "input.Dept != '-'",
uiOutput("select_Dept"),
uiOutput("select_Admit"),
uiOutput("Freq"))
),
mainPanel(
textOutput("Add Data here later"),)
)
)
# Define server logic ----
server <- function(input, output) {
output$select_Dept <- renderUI({
choices<-unique(df$Gender)
checkboxGroupInput('Projects', label = 'Select Gender',
choices = choices)
})
output$select_Admit<-renderUI({
Admit<-unique(df$Admit)
checkboxGroupInput('Projects', label = 'Select Admit Type:',
choices = Admit)
})
output$Freq<-renderUI({
Freq<-sort(df$Freq[grep(input$Dept,df$Dept)])
selectInput('sample', choices =Freq, label ='Select Freq')
})
}
# Run the app ----
shinyApp(ui = ui, server = server)