Я хотел бы создать блестящую панель управления, где: 1) пользователь выбирает файл Excel 2) создается опция Selectinput
для каждого нечислового c столбца полученного фрейма данных, что дает пользователям возможность для выбора каждого уникального значения в этом столбце. Вот как выглядит мой код на данный момент:
library(shiny)
library(dplyr)
library(openxlsx)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
fileInput('datafile', 'Choose xlsx file',
accept = c(".xlsx")),
lapply(names("varselect"), function(i) {
selectInput(paste0(i), paste0(i),
choices = "varselect"[i],
multiple = TRUE,
selected = "")})),
mainPanel()))
server <- function(input, output,session) {
Data <- reactive({
infile <- input$datafile
if (is.null(infile)) {
return(data.frame())
}
read.xlsx(infile$datapath,
sheetIndex = 1) %>% select_if(colSums(!is.na(.)) > 0%>% select_if(~!is.numeric(.x)) %>% head())
})
output$varselect <- renderUI({
})
observe({
lapply(names(Data()), function(i) {
selectInput(paste0(i), paste0(i),
choices = Data()[i],
multiple = TRUE,
selected = "")})})
}
shinyApp(ui = ui, server = server)
Я знаю, что код не работает и есть серьезные ошибки, но я надеюсь, что кто-то может помочь мне найти подход это действительно работает для этой проблемы. Я новичок в Шинни, и поэтому я, честно говоря, понятия не имею, как решить эту проблему.
Большое спасибо.