library(shiny)
## Warning: package 'shiny' was built under R version 4.3.3
library(readxl)
library(car)
## Warning: package 'car' was built under R version 4.3.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.3.3
# UI
ui <- fluidPage(
  titlePanel("Data Exploration and Visualization"),

  sidebarLayout(
    sidebarPanel(
      fileInput("file", "Upload Dataset (Excel)", accept = c(".xlsx")),
      selectInput("var", "Select Variable for Analysis:", choices = NULL)
    ),

    mainPanel(
      tabsetPanel(
        tabPanel("Data Summary", verbatimTextOutput("dataSummary")),
        tabPanel("Frequency Tables", verbatimTextOutput("freqTables")),
        tabPanel("Histograms", plotOutput("histPlot")),
        tabPanel("Boxplots", plotOutput("boxPlot"))
      )
    )
  )
)

# Server
server <- function(input, output, session) {

  dataset <- reactive({
    req(input$file)
    read_excel(input$file$datapath)
  })

  observe({
    data <- dataset()
    updateSelectInput(session, "var", choices = names(data))
  })

  output$dataSummary <- renderPrint({
    data <- dataset()
    summary(data)
  })

  output$freqTables <- renderPrint({
    data <- dataset()
    lapply(data, function(x) if (is.factor(x) || is.character(x)) table(x))
  })

  output$histPlot <- renderPlot({
    data <- dataset()
    req(input$var)
    hist(data[[input$var]], col = "red", main = paste("Histogram of", input$var))
  })

  output$boxPlot <- renderPlot({
    data <- dataset()
    req(input$var)
    boxplot(data[[input$var]] ~ data$Year, main = "Boxplot by Year", col = rainbow(5))
  })

}

# Run the application 
shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents