I'm trying my first shinyapp using two filters. The output would be two; the first to get a data table and the second to get the sum of the filtered output.
The data consists of 4 variables; Welfare_benefit - character Value - Numerical Category - character Targeted_group - character
Data - Budget2023
Code:
library(shiny)
library(dplyr)
library(readxl)
library(shinythemes)
Budget2023 <- read_excel("Budget2023.xlsx",
sheet = "Welfare benefits for R")
Budget2023$`Value_in_Rupees_Million` <- as.numeric(Budget2023$`Value_in_Rupees_Million`)
ui <- fluidPage(
theme = shinytheme("superhero"),
titlePanel("Budget 2023 - Welfare allocations"),
sidebarLayout(
sidebarPanel(
selectInput("category",
"Select category",
choices = Budget2023$`Broad_categories identified`),
selectInput("group",
"Select the targeted group",
choices = Budget2023$`Targetted_group`)
),
# Show a plot of the generated distribution
mainPanel(
tableOutput("WelfareTable"),
textOutput("Total")
)
)
)
server <- function(input, output) {
output$WelfareTable <- renderTable( {
if (input$category == "") {
subset(Budget2023, input$group == Budget2023$`Targetted_group`)
} else {
subset(Budget2023, input$category == Budget2023$`Broad_categories_identified` & input$group == Budget2023$`Targetted_group`)
}
})
output$Total <- renderText(c(sum(Budget2023$`Value_in_Rupees_Million`)))
# Run the application
shinyApp(ui = ui, server = server)
The issue is it doesn't generate the sum of the columns filtered and generated in the Welfaretable output.
Appreciate if you can assist on this as I couldn't figure out the issue through existing examples.
TIA!
Edit:
Dataset - Budget2023
Budget2023 <- DF ( Welfare_benefit = c('A','B', 'C', 'D', 'E', 'F', 'G'),
Value_in_Rupees_Million = c(43000, 67000, 3000, 250, 5700,340, 3100),
Broad_categories_identified = c('Economic', 'Education', 'Health', 'Education', 'Livelihood', 'Education'),
Targetted_group = c('Elderly', 'Disabled', 'Children', 'Low income', 'Elderly', 'Disabled', 'Disabled'))
the text output in your code is not using the subset table, but taking sum of all your
Budget2023dataset. try this, I'm using areactivethat generates the subset usinginputselections and use it in the output table and text calculating sum.