我想从表格中获取标头,然后在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) )
)
)
)
答案 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
。
希望这会有所帮助。