EDITE: 我增加了一個例子是一樣的我的問題。我想將checkboxGroupInput
更新爲dataset
更改。並且還希望使用checkboxGroupInput
選項中的選中列來呈現表格。動態渲染UI的輸入和輸出r光澤
服務器
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')
)
)
)
)
第一寫:
我簡化下面的代碼。我想使用更新的選擇輸入作爲updatedCheckboxGroupInput選項的輸出。但更新的選擇輸入input$select_group
爲空。我嘗試了各種解決方案..但無法解決它。 如果你只是運行這段代碼向右走,這是行不通的..
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
})
我想更新selectInput
選擇,因爲names(fund_group)
變化。 所以我用下面的代碼,
observe({
group_name <- reactive({ names(fund_group()) })
updateSelectInput(session,
"select_group",
choices = group_name())
fund_list <- reactive({ fund_group()[[input$select_group]] })
updateCheckboxGroupInput(session,
"fund_in_group",
choices = fund_list(),
selected = fund_list())
})
對於UI,
narvarPage("narvarTitle",
tabPanel("tab panel",
fluidRow(column(3, wellPanel(textOutput("fixed_anal_date"),
br(),
br(),
selectInput("select_group",
label = "Select group",
choices = ""),
br(),
checkboxGroupInput("fund_in_group",
label = "Select funds :",
choices = ""),
br()
))
))
感謝您閱讀的亂碼...
你能更好地解釋你的問題併發佈一個最小可重現的例子嗎?這一個缺少功能。 –
@BárbaraBorges我編輯了我的代碼,謝謝你的回覆!希望它能更好地識別 – yeyoung
這段代碼似乎仍然有一些缺失的功能 – SBista