Ich versuche, eine App in glänzend zu bauen, die in der Lage ist, ein Dataset in der Serverfunktion zu laden und dann basierend auf dem Benutzer wählen und dann, wenn es eine Faktorvariable ist Öffnen Sie das Kontrollkästchen mit ConditionalPanel. Gibt es eine Möglichkeit, Variablen vom Server als Bedingung für das ConditionalPanel auszugeben?Shiny - conditionalPanel - setze Bedingung als Ausgabe vom Server
Hier ist, was ich versucht:
library(shiny)
library(caret)
ui <- fluidPage(
selectInput('dataset', 'Select Dataset',
list(GermanCredit = "GermanCredit",
cars = "cars")),
conditionalPanel(
condition = "output.factorflag == true",
checkboxInput("UseFactor", "Add Factor Variable")
)
)
server <- function(input, output) {
# Loading the dataset
df <- reactive({
if(input$dataset == "GermanCredit"){
data("GermanCredit")
df <- GermanCredit
}else if(input$dataset == "cars"){
data(cars)
df <- cars
}
return(df)
})
# Loading the variables list
col_type <- reactive({
col_type <- rep(NA,ncol(df()))
for(i in 1:ncol(df())){
col_type[i] <- class(df()[,i])
}
return(col_type)
})
outputOptions(output, "factorflag", suspendWhenHidden = FALSE)
output$factorflag <- reactive({
if("factor" %in% col_type()){
factor.flag <- TRUE
} else {factor.flag <- FALSE}
}
)
}
shinyApp(ui = ui, server = server)
Thank you in advance!
Das funktioniert gut, auch danke für die anderen Vorschläge! –