# Lade notwendige Bibliotheken
library(shiny)
## Warning: Paket 'shiny' wurde unter R Version 4.4.1 erstellt
library(readxl)
library(janitor)
## Warning: Paket 'janitor' wurde unter R Version 4.4.1 erstellt
##
## Attache Paket: 'janitor'
## Die folgenden Objekte sind maskiert von 'package:stats':
##
## chisq.test, fisher.test
library(skimr)
## Warning: Paket 'skimr' wurde unter R Version 4.4.1 erstellt
library(ggplot2)
## Warning: Paket 'ggplot2' wurde unter R Version 4.4.2 erstellt
library(dplyr)
## Warning: Paket 'dplyr' wurde unter R Version 4.4.2 erstellt
##
## Attache Paket: 'dplyr'
## Die folgenden Objekte sind maskiert von 'package:stats':
##
## filter, lag
## Die folgenden Objekte sind maskiert von 'package:base':
##
## intersect, setdiff, setequal, union
# Daten einlesen und vorbereiten
disc_lab <- read.csv("C:/Master/3. Semester/R/Dataset/disc_lab_lencha2.csv",
header = TRUE, sep = ",")
# Konvertiere Variablen zu numerischen Werten
cols_to_numeric <- c("P8_1", "P8_1A", "P9_1", "P11_4_1", "P11_4_2", "P11_4_3",
"P11_4_4", "P11_4_5", "P11_5_7", "P11_6_11",
"P11_8_1", "P11_8_2", "P11_8_3", "P11_8_4", "P11_8_5")
disc_lab[cols_to_numeric] <- lapply(disc_lab[cols_to_numeric], as.numeric)
# Filtere Daten für Frauen
frauen <- disc_lab %>%
filter(
P9_1 == 2 &
P8_1A %in% c(1, 2, 3, 4) &
P11_5_7 != 9 &
P11_6_11 != 9
)
# Diskriminierungsvariablen kodieren
frauen$dicriminacion_1 <- ifelse(frauen$P11_4_1 == 1, 1, 0)
frauen$dicriminacion_2 <- ifelse(frauen$P11_4_2 == 1, 1, 0)
frauen$dicriminacion_3 <- ifelse(frauen$P11_4_3 == 1, 1, 0)
frauen$dicriminacion_4 <- ifelse(frauen$P11_4_4 == 1, 1, 0)
frauen$dicriminacion_5 <- ifelse(frauen$P11_4_5 == 1, 1, 0)
frauen$dicriminacion_6 <- ifelse(frauen$P11_5_7 == 1, 1, 0)
# Shiny App UI
ui <- fluidPage(
titlePanel("Analyse der Diskriminierungsdaten"),
sidebarLayout(
sidebarPanel(
selectInput("variable", "Wähle eine Variable:",
choices = c("dicriminacion_1", "dicriminacion_2",
"dicriminacion_3", "dicriminacion_4",
"dicriminacion_5", "dicriminacion_6")),
radioButtons("chart_type", "Diagrammtyp:",
choices = c("Balkendiagramm" = "bar",
"Tortendiagramm" = "pie"))
),
mainPanel(
plotOutput("plot"),
tableOutput("table")
)
)
)
# Shiny Server
server <- function(input, output) {
# Plot erstellen
output$plot <- renderPlot({
var <- input$variable
data <- table(frauen[[var]])
if (input$chart_type == "bar") {
barplot(data,
col = c("lightblue", "salmon"),
main = paste("Balkendiagramm von", var),
xlab = "Kategorie", ylab = "Häufigkeit")
} else if (input$chart_type == "pie") {
pie(data,
col = c("lightblue", "salmon"),
main = paste("Tortendiagramm von", var))
}
})
# Häufigkeitstabelle anzeigen
output$table <- renderTable({
var <- input$variable
table(frauen[[var]])
})
}
# App starten
shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents