1
在我的应用程序中,我希望用户选择一个文件夹,并从该文件夹中选择一个文件。闪亮的条件面板
我以为使用conditionalPanel()
,所以用户只会看到第一个按钮,直到他选择文件夹。我编写了这段代码,但是我收到了这个错误信息,'找不到'对象'输入',那么执行此操作的正确方法是什么?在绝对面板中放置一个条件面板是个问题吗?
library(shiny)
library(ggplot2)
ui <- shinyUI(fluidPage(
titlePanel(""),
fluidRow(
# select input for selecting a folder
column(2, absolutePanel(fixed = TRUE, width = '180px',
selectInput("pick_folder", label = '', selected='choose_a_folder',
choices = setNames(as.list(c('choose_a_folder', basename(setdiff(list.dirs(recursive = FALSE),'.')))),
c('choose_a_folder', basename(setdiff(list.dirs(recursive = FALSE),'.'))))))),
# select input for selecting a file absolutePanel then conditionalPanel
column(2, absolutePanel(fixed = TRUE, width = '180px',
conditionalPanel(condition="input.pick_folder==choose_a_folder",
selectInput('pick_file', label = '', selected = 'choose_a_file',
choices = setNames(as.list(c('choose_a_file', basename(setdiff(list.files(path=input$pick_folder ,recursive = FALSE),'.')))),
c('choose a file', basename(setdiff(list.files(path=input$pick_folder ,recursive = FALSE),'.')))))))),
),
fluidRow(
#plot
plotOutput('my_plot')
)))
# server
server <- shinyServer(function(input, output) {
output$my_plot <- renderPlot({
dat <- read.table(file=paste(input$pick_folder, input$pick_file, sep='/'))
# some plots over dat
})
})
shinyApp(ui, server)
谢谢!看来我需要尝试将大部分代码移动到服务器上,这是过去一周内第二次,这是我的问题的解决方案。 –
服务器就是所有思维发生的地方,所以如果你的代码在做任何思考,它应该可能在服务器中。用户界面全都是关于外观(如此肤浅,呃!)。 –