EDITE: 私の問題と同じもう1つの例を追加しました。 checkboxGroupInput
をdataset
として更新したいと思います。また、checkboxGroupInput
オプションのチェックされた列でテーブルをレンダリングしたい。ダイナミックレンダリングUIの入力と出力R shiny
サーバ
shinyServer(function(input, output, session) {
dataset_list <- list("rock" = rock,
"pressure" = pressure,
"cars" = cars
)
observeEvent(input$n_select_input, {
selected_dataset <- reactive({
selected_list <- list()
for(i in 1:input$n_select_input){
selected_list[[i]] <- dataset_list[[i]]
}
names(selected_list) <- names(dataset_list)[1:input$n_select_input]
selected_list
})
colname_indata_list <- reactive({
colname.indata.list <- list()
for(set in names(selected_dataset())){
colname.indata.list[[set]] <- colnames(selected_dataset()[[set]])
}
colname.indata.list
})
choice_cand <- reactive({ names(selected_dataset()) })
updateSelectInput(session,
"dataset",
choices = as.character(choice_cand())
)
choices_cand <- reactive({ colname_indata_list()[[input$dataset]] })
updateCheckboxGroupInput(session,
"column",
choices = as.character(choices_cand())
)
})
# observeEvent(input$dataset, {
#
# choices_cand <- reactive({ colname_indata_list()[[input$dataset]] })
# updateCheckboxGroupInput(session, "column",
# choices = as.character(choices_cand()))
#
# })
datasetInput <- reactive({
switch(input$dataset,
"rock" = rock,
"pressure" = pressure,
"cars" = cars)
})
output$table <- renderTable({
datasetInput()
})
})
私はそれが動作しませんでした、##で上記のコードを試してみました。
UI
shinyUI(
fluidPage(titlePanel('Downloading Data'),
sidebarLayout(
sidebarPanel(numericInput("n_select_input", "n select inpur", 1,
min=1, max=3),
selectInput("dataset", "Choose a dataset:",
choices = ""),
checkboxGroupInput("column", "select column",
choices = "")
),
mainPanel(
tableOutput('table')
)
)
)
)
最初の書き込み:
Iは、以下のコードを簡略化します。私はupdatedCheckboxGroupInputの選択肢の出力として更新された選択入力を使用したい。しかし、更新された選択入力input$select_group
はヌルです。私は解決策を変更しようとしましたが、解決できませんでした。 あなたはちょうど私がnames(fund_group)
変化としてselectInput
選択肢を更新したい
fund_group <- reactive({ # this is the list of fund group including fund name
# for example,
"domestic" = c("a","b", "c"),
"global" = c("aa", "bb", "cc")
# list name and fund name in the list are changable
})
..それは動作しません。すぐにこのコードを実行した場合。 は、だから、私は、コード編集した
問題をよりよく説明し、最小限の再現可能な例を投稿できますか?これには機能がありません。 –
@BárbaraBorges私は自分のコードを編集しました、返信いただきありがとうございます! – yeyoung
このコードはまだいくつかの機能が不足しているようです。 – SBista