私は、selectInput()値に基づいてcheckboxGroupInput()を更新するShinyアプリケーションを構築しています。私はまた、入力値を再選択するたびに同じように表示されるように、選択/選択解除された値を保存したい。これを行うには、選択肢を格納するためにリアクティブ値を使用しています。R updateCheckboxGroupInput()とselectinput()を使用したキャッシングの値
は、ここでおもちゃの例です:ほとんどの部分について
library(shiny)
letters = c('A','B','C','D','E','F','G','H','I','J','K','L')
words = list("A" = c("apples","aardvark","alabama"),
"B" = c("banana","baltimore","beehive"),
"C" = c("catastrophe","cantalope"),
"D" = c("dinosaur","dairy","dolphin"),
"E" = c("eager","elephant","ecumenical"),
"F" = c("fleming","florida","flight"),
"G" = c("gator","greater","gait"),
"H" = c("HI"),
"I" = c("igloo","ignominious","interesting"),
"J" = c("jogging","jumpsuit"),
"K" = c("kellog","kangaroo"),
"L" = c("lemon","lime","lemonjello"))
ui <- fluidPage(
selectInput("letter","Choose Letter",choices=letters,selectize=F),
# Initiate check box group
checkboxGroupInput('words_by_letter',label='Select Your Favorite Words',choices = c(1))
)
server <- function(input, output, session) {
v_selected <- reactiveValues(
"A" = c("apples","aardvark","alabama"),
"B" = c("banana","baltimore","beehive"),
"C" = c("catastrophe","cantalope"),
"D" = c("dinosaur","dairy","dolphin"),
"E" = c("eager","elephant","ecumenical"),
"F" = c("fleming","florida","flight"),
"G" = c("gator","greater","gait"),
"H" = c("HI"),
"I" = c("igloo","ignominious","interesting"),
"J" = c("jogging","jumpsuit"),
"K" = c("kellog","kangaroo"),
"L" = c("lemon","lime","lemonjello"))
observeEvent(input$letter,{
updateCheckboxGroupInput(session,
inputId = "words_by_letter",
choices = words[[input$letter]],
selected = v_selected[[input$letter]])
})
observeEvent(input$words_by_letter,{
v_selected[[input$letter]] = input$words_by_letter
})
}
shinyApp(ui = ui, server = server)
、これは正常に動作します。ただし、(矢印ボタンを押したままで)入力をすばやくスクロールすると、最終的にチェックボックスグループの一部がすべてオフになります。私はこれが反応速度とJavascriptとの通信の速度と関係があると仮定していますが、それを修正する方法はわかりません。
ノート:「レター」ごとに別の条件付きパネルを使用してみましたが、これによってアプリの読み込み時間が大幅に増えるため、その戦略を使用したくないです。
レース条件:それは価値がある何のため
、これはアプリのように見えるものです。ハード。いくつか試してみましたが、周りを回ることはできません。 –
私の答えに関するフィードバック? –
遅れて申し訳ありません!私はあなたのアイデアが既存のカテゴリをチェックするのが好きで、今すぐテストしてみることができます - すぐにアップデートを送信します。 – emitchell