在Shiny中使用selectInput的问题

时间:2016-11-09 23:51:31

标签: r shiny

我试图在selectInput中显示文件所具有的变量的名称。想法是用户在应用程序中上传文件,他可以选择selectInput中的任何变量。我试图这样做,但我没有意识到我的错误。我找到了这个答案,但它没有帮助我。 Selecting record date with selectInput in shiny R

这是Ui.R代码:我的selectInput中没有名字。

library(shiny)
ui<-fluidPage(
  titlePanel(title = "Prueba"),
  sidebarLayout(
    sidebarPanel(
      fileInput('file1', 'Cargar archivo',
                accept = c(
                  'text/csv',
                  'text/comma-separated-values',
                  'text/tab-separated-values',
                  'text/plain',
                  '.csv',
                  '.tsv'
                )
      ),
      checkboxInput('header', '¿Contiene Encabezado?', TRUE),
      radioButtons('sep', 'Delimitador',
                   c(Comma=',',
                     "Punto y coma"=';',
                     Tab='\t'),
                   ','),
      radioButtons('quote', 'Quote',
                   c(Ninguna='',
                     'Dobles'='"',
                     'Simples'="'"),
                   '"'),
      radioButtons('resume', 'Summary',
                   c('Individual',
                     'Múltiple'), 
                   inline = TRUE),
      conditionalPanel("input.resume === 'Individual'",
                       selectInput('xcol', 'Variable X', names("fileInput$file1"),
                                   selected = names("fileInput$file1")[[1]])
                       )
    ),
    mainPanel(h3("Muestra del archivo cargado:"),
              tableOutput('contents'),
              verbatimTextOutput("summary")
    )
  )
)

1 个答案:

答案 0 :(得分:0)

这是一个如何做的例子:

library(shiny)
ui<-fluidPage(
  titlePanel(title = "Prueba"),
  sidebarLayout(
    sidebarPanel(
      fileInput('file1', 'Cargar archivo',
                accept = c(
                  'text/csv',
                  'text/comma-separated-values',
                  'text/tab-separated-values',
                  'text/plain',
                  '.csv',
                  '.tsv'
                )
      ),selectInput('xcol', 'Variable X', columns())),
    mainPanel(h3("Muestra del archivo cargado:"),
              tableOutput('contents'),
              verbatimTextOutput("summary")
    )
  )
)
server <- function(input, output, session){
  columns <- reactive({
    df <- read.table(input$file1$datapath)
    names(df)
  })
  observe({
    if(!is.null(input$file1))
      updateSelectInput(session, "xcol", choices=columns())})
}

shinyApp(ui, server)