Ich bin neu in R, und ich habe diesen Code in Ui.R:R glänzend: checkboxGroupInput Wert
library(shiny)
ui <- shinyUI(fluidPage(
titlePanel("Test 1"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("sex", "sex", c("Men", "Women")),
textOutput("number")
),
mainPanel(
)
)
))
Und diesen Code in Server.R:
server <- shinyServer(function(session, input, output) {
observeEvent(input$sex, {
if (input$sex == "Men"){s<-1}
number<-as.numeric(s)
if (input$sex == "Women"){s<-2}
number<-as.numeric(s)
if (input$sex == "Men" & input$sex == "Women"){s<-5}
number<-as.numeric(s)
if (is.null(input$sex)) {s<-10}
number<-as.numeric(s)
output$number<-renderText({number})
})
})
Also, ich don verstehe nicht, warum "Zahl" nicht den Wert 5 annimmt, wenn ich beide Kontrollkästchen ankreuze, und warum "Zahl" nicht den Wert 10 annimmt, wenn ich beide Kontrollkästchen deaktiviere?
Wenn Sie mir bitte helfen könnten, zu verstehen.
Vielen Dank.
BEARBEITEN: wie checkboxGrouInput "dynamisch" deaktivieren?
library(shiny)
ui <- shinyUI(fluidPage(
titlePanel("Test 1"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput(inputId = "sex", label = "sex",choices =
c("Men", "Women", "Children")),
textOutput("number")
),
mainPanel(
checkboxGroupInput(inputId = "dynamic", label = "", choices =
list("Answer 1"="01", "Answer 2"="02",
"Answer 3"="03", "Answer 4"="04",
"Answer 5"="05", "Answer 6"="06",
"Answer 7"="07", "Answer 8"="08",
"Answer 9"="09", "Answer 10"="10",
"Answer 11"="11", "Answer 12"="12"))
)
)
))
Und Server.R:
server <- shinyServer(function(session, input, output) {
output$number<-renderText({
if (is.null(input$sex)){return(10)
updateCheckboxGroupInput(session,"dynamic",selected=character(0))}
men <- "Men" %in% input$sex
women <- "Women" %in% input$sex
children <- "Children" %in% input$sex
if (men & women & children){
s <- 8
updateCheckboxGroupInput(session,"dynamic",
selected=list("01","02","03","04","05","06",
"07","08","09","10","11","12"))
} else if (men & women){
s <- 5
updateCheckboxGroupInput(session,"dynamic",
selected=list("01","02","03","04","05","06","07","08"))
} else if (men){
s <-1
updateCheckboxGroupInput(session,"dynamic",
selected=list("01","02","03","04"))
} else if (women){
s <-2
updateCheckboxGroupInput(session,"dynamic",
selected=list("05","06","07","08"))
} else if (children) {
s <- 3
updateCheckboxGroupInput(session,"dynamic",
selected=list("09","10","11","12"))
}
return(as.numeric(s))
})
})
Danke sehr, sehr viel.
Oh toll haben! Vielen Dank Ron für deine Erklärungen. Ich verstehe jetzt besser. Nur noch eine Frage: Ich muss ein Kästchen in der Checkbox GroupInput: Kinder hinzufügen. Wie kann ich Entscheidungen unterscheiden: Männer-Frauen/Männer-Kinder/Frauen-Kinder, wie die Länge ist die gleiche? Danke nochmal. –
Siehe aktualisierten Code. Es gibt elegantere Möglichkeiten, dies zu tun, aber diese folgen den Ideen in Ihrem Code. –
Vielen Dank Ron für die Hilfe. Du bist ein König. Aber sobald ich meinen Code abgeschlossen habe, habe ich immer noch ein kleines Problem mit der Abwahl der CheckboxGroupInput "dynamisch", wenn keines der Kästchen des checkboxGroupInput "Geschlecht" angekreuzt ist. Ich habe versucht "ausgewählt = NULL, FALSCH und Zeichen (0), aber keiner von ihnen funktioniert. Weißt du warum? Bitte, sehe meinen bearbeiteten Code. Vielen Dank noch einmal Ron. –