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