私はRに新たなんだと私はUi.Rでこのコードを持っている:私ドン、そうR光沢:checkboxGroupInput値
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})
})
})
:
library(shiny)
ui <- shinyUI(fluidPage(
titlePanel("Test 1"),
sidebarLayout(
sidebarPanel(
checkboxGroupInput("sex", "sex", c("Men", "Women")),
textOutput("number")
),
mainPanel(
)
)
))
そしてServer.Rでこのコードを両方のチェックボックスをオンにした場合、なぜ「数値」が5にならないのか、両方のチェックボックスをオフにすると「数値」が10にならないのはなぜですか?
ご理解いただけたら助かります。
ありがとうございました。
EDIT:checkboxGrouInput "dynamic"の選択を解除する方法は?
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"))
)
)
))
そして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))
})
})
非常にありがとうございました。
!あなたの説明のためにロンに感謝します。私は今よくよく理解する。ちょうどもう1つの質問:checkboxGroupInput:childrenに1つのボックスを追加する必要があります。どのように私は選択肢を区別することができます:男性 - 女性/男性 - 子供/女性 - 子供の長さは同じですか?ありがとうございました。 –
更新されたコードを参照してください。これを行うもっとエレガントな方法がありますが、これはコード内のアイデアに従います。 –
Ronさんを助けてくれてありがとう。あなたは王様です。しかし、コードを完成したら、checkboxGroupInput "sex"のチェックボックスがチェックされていなければ、checkboxGroupInput "dynamic"の選択を解除するのに少し問題があります。私は "selected = NULL、FALSE、character(0)を試しましたが、どれも動作しません。なぜですか? –