Я хочу предоставить inputselect «выборы» в зависимости от загруженных файлов (fileInput). В приведенном ниже примере я хочу as.list(mydata[1, 1:5])
как значения для выбора inputselect. Позже значения подмножества будут динамическими и не будут показаны здесь.Shiny: update selectinput при изменении inFile
Я попробовал несколько подходов, предложенных в форуме (реактивная, наблюдать, reactiveValue и их сочетание), без особого успеха.
Мой скрипт выполняется частично, однако мне нужно обновить страницу, чтобы загрузить «варианты» и загрузить файл снова.
server.R
shinyServer(function(input, output, session) {
output$contents <- renderDataTable({
inFile <<- input$SoftRecom
if (is.null(inFile))
return(NULL)
filedatapath <<- reactive({inFile$datapath})
mydata <<- read.csv(filedatapath(), header = TRUE, sep = ',')
mydata
})
mychoices <<- reactive({
mydata
print(mydata)
})
output$vg <- renderUI({
selectInput("vg", label = p("goal", style = "color:#FFA500"),
mychoices()[1,1:5], selected = 1)
})
output$vp <- renderUI({
selectInput("procedure", label = p("procedure", style = "color:#FFA500"),
choices = c("proecudures"), selected = 1)
})
output$vm <- renderUI({
selectInput("procedure", label = p("procedure", style = "color:#FFA500"),
choices = c("ChIP-seq"), selected = 1)
})
})
ui.R
shinyUI(fluidPage(theme = "bootstrap.css",
titlePanel("simple software recommendation sytem"),
sidebarLayout(
sidebarPanel(
fileInput('SoftRecom', 'choose dataset'),
uiOutput("vg"), # variable goal
uiOutput("vp"), # variable procedure
uiOutput("vm") # variable method
),
mainPanel(
dataTableOutput('contents')
)
)
))
Я видел много примеров и ответов на форуме, которые очень близки (или даже совпадать) мой вопрос. Извините за то, что так тупо. Если кто-то может указать мне на проблему, я был бы очень благодарен.
Jay