【发布时间】:2014-12-22 11:30:06
【问题描述】:
我有一个闪亮的 selectInput 面板。到目前为止,我只处理了 selectInput 中选择的固定值。
现在我想根据闪亮的 Ui 中的其他一些条件来改变这些选择。
例子:
Ui.R
shinyUI(fluidPage(
fluidRow(column(3,
wellPanel(
h4("Data Upload"),
fileInput('file1', h5('Choose Your Model Data'), accept=c('text/csv','text/comma-separated-values,text/plain','.OUT')),
fileInput('file2', h5('Choose Your Observation Data'), accept=c('text/csv','text/comma-separated-values,text/plain','.xlsx'))
),
wellPanel(uiOutput("check"))))
Server.R
shinyServer(function(input, output) {
output$check <- renderUI({
selectInput("check", label = h4("Dataset Selection"), choices = c("Model" = 1, "Observation" = 2, "Both" = 3), selected = 1, multiple = F )
})
a <- reactive({
fileinput1 <- input$file1
if (is.null(fileinput1))
return(NULL)
read.table(fileinput1$datapath, header = TRUE, col.names = c("Ei","Mi","hours","Nphy","Cphy","CHLphy","Nhet","Chet","Ndet","Cdet","DON","DOC","DIN","DIC","AT","dCCHO","TEPC","Ncocco","Ccocco","CHLcocco","PICcocco","par","Temp","Sal","co2atm","u10","dicfl","co2ppm","co2mol","pH"))
})
#Upload Observation Data
b <- reactive({
fileinput2 <- input$file2
if (is.null(fileinput2))
return(NULL)
#xlfile <- list.files(pattern = ".xlsx")
xlfile <- fileinput2[1]
wb <- loadWorkbook(xl_file)
sheet_ct <- wb$getNumberOfSheets()
b <- rbindlist(pblapply(1:sheet_ct, function(x) {
res <- read.xlsx(xl_file, x)
}), fill=TRUE)
b <- b [-c(1),]
print (b)
})
现在我想根据文件输入在 selectInput 中动态做出选择。
【问题讨论】:
-
查看
?updateSelectInput及其家族函数来处理这些问题。也看看?conditionalPanel。 -
我已经尝试过 updateselectinput 并未能实时更新选择列表......就像用户上传文件1我需要根据“模型”更新选择列表......如果他然后上传第二个文件然后提供所有三个选项..如果只上传第二个文件然后选择 = 只是“观察”。请让我知道如何实现。