闪亮的应用程序。从上传表中获取标题

时间:2018-06-25 13:05:07

标签: r shiny rstudio

我想从表格中获取标头,然后在checkboxGroupInput中使用它们以进行进一步的排序。标头不相等,因为表格不同。

我正在使用以下代码上传表格:

Server.R

library(shiny)
library(tidyverse)
library(readxl)
server <- function(input, output) {

  names <- reactive({ read_excel(input$file1$name, sheet = 1,
                      range = "A1:P1", col_names = TRUE)
                    })
}

Ui.R

 library(shiny)
 library(shinythemes)
 ui <- fluidPage(

  theme=shinytheme("readable"),

  # App title ----
  titlePanel("App_1"),

  # Sidebar layout with input and output definitions ----
  sidebarLayout(

    # Sidebar panel for inputs ----
    sidebarPanel(


      # Input: Select a file ----
      fileInput("file1", "Choose File",
                multiple = FALSE),

      # Horizontal line ----
      tags$hr(),


      checkboxGroupInput("show_vars", "Columns in diamonds to show:", names(names) )
    )
  )
)

1 个答案:

答案 0 :(得分:0)

为此,我首先将UI中NA的选项设置为checkboxGroupInput。接下来,我将以下代码添加到您的服务器:

observe({
 if (is.null(input$file1))
  return(NULL)
 cnames <- colnames(names())
 updateCheckboxGroupInput(session, inputId = "show_vars", choices = cnames)
})

此代码将使用文件中列的名称更新checkboxGroup的选择。

一些注意事项。首先,我收到一个错误,提示您您的mainPanel中缺少sidebarPanel参数。其次,请注意,您要在此处使用colnames而不是names。最后,我建议使用input$file1$datapath代替input$file1$name中的read_excel

希望这会有所帮助。