出力に影響を与えるオプションを選択したいと思います。ここには2つのオプションがあります:選択するカー、シリンダー。選択したオプションに基づいて、選択する選択肢が異なります。Shiny:SelectizeInputの選択肢の条件付きアップデートに関する問題
library(shiny)
mtcars$cars <- rownames(mtcars)
ui <- fluidPage(
title = 'Select experiment',
sidebarLayout(
sidebarPanel(
radioButtons("selectOpt", "Want to select:",
list("Car"='car', "Cylinders"='cyl'),
selected = 'car'),
conditionalPanel(
condition = "input.selectOpt=='car'",
selectizeInput(
inputId = "sel_car",
label = "Select a Car",
choices = mtcars$cars
)),
conditionalPanel(
condition = "input.selectOpt=='cyl'",
selectizeInput(
inputId = "sel_cyl",
label = "Select Cylinders",
choices = unique(mtcars$cyl)
)
)
),
mainPanel(
helpText('Output of the examples in the left:'),
verbatimTextOutput('ex_out')
)
)
)
server <- function(input, output) {
output$ex_out <- renderPrint({
if(!is.null(input$sel_car)){
cat(input$sel_car,input$sel_cyl,'\n')
mtcars[mtcars$cars == input$sel_car,]
}else if(!is.null(input$sel_cyl)){
mtcars[mtcars$cyl == input$sel_cyl,]
}
})
}
shinyApp(ui, server)
はしかし、私はいつもこの二つのオプションが選択されたオプションを持っていることを観察しました。これは出力の最初の行に表示されます(ソースcat(input$sel_car,input$sel_cyl,'\n')
)。
カーがシリンダオプションの最初の選択は、選択されてしまった、選択されています。
シリンダーオプションを選択すると、車のオプションマツダRX4の最初の選択肢も選択しまいました。
どのように私は両方のif
とelse if
セクションを評価することができるだろうというように、最初の選択肢FOデフォルトの選択を避けるために?
解決に感謝します。私はアプリの奇妙な動作を観察している。 Carオプションで選択を選択した後でCylinderオプションで選択肢を選択した場合、表示される出力は期待通りにはなりません(選択されたシリンダ数を持つ行)。しかし、私はアプリをリフレッシュし、シリンダーオプションで直接選択を選択した場合、それは正常に動作します。この動作の回避策は何ですか? – Prradep
その動作が期待されます。 'conditionalPanel'は入力を隠すだけですが、選択した値はまだそこにあります。 2つの排他的な 'Input'sが必要な場合は、おそらく' updateSelectInput() '関数を見たいでしょう。 – GGamba