Data Science nutzt Analysewerkzeuge und Analysemethoden, wie zB. Dashboards, um Erkenntnisse aus Daten zu ermitteln und darzustellen. Solche Dashboards, wie etwas das R Shiny Dashboard, dienen als Reporting- und Visualisierungstool, das diese Ergebnisse auf einer Webseite optimiert präsentiert. Bei R Shiny handelt es sich ein auf der Programmiersprache R basierendes Framework. Die Entwicklung der Web-Anwendung findet in R statt und hierfür sind keine Programmierkenntnisse erforderlich.
Sie benötigen ein R Shiny Dashboard auf Ihrer Webseite bzw. wollen eine Auswertung ihrer Daten mithilfe von R durchführen? – Unsere Data Scientists von Novustat bieten professionelle Statistik-Beratung bei der Entwicklung einer R Shiny App für Ihre Analysen.
In diesem Artikel zeigen wir Ihnen, wie Sie ein Shiny Dashboard mittels R Shiny erstellen und auf welche grundlegenden Dinge Sie achten sollten, wenn Sie R Shiny für ihr Data Science Projekt nutzen wollen. Und das ohne große Programmierfähigkeiten.
Was ist R Shiny?
Bei Shiny handelt es sich um eine Technologie, mit deren Hilfe sich Unternehmensanalysen ohne Programmierkenntnisse in interaktive Web-Anwendungen verwandeln lassen. Die Relaiserung des Deployments der Web-Anwendungen erfolgt mithilfe des Shiny Servers. Dieser ist entweder als Open Source oder Enterprise-Variante erhältlich. Auf diese Web-Anwendungen kann im Intranet eines Unternehmens und über das Internet zugegriffen werden. Auch optisch lassen sich diese Web-Anwendungen in R an die Corporate Identity eines Unternehmens anpassen.
Bei R Shiny handelt es sich also um ein HTML5/CSS/JavaScript-Framework, welches auf der Programmiersprache R basiert. Mit diesem Framework lassen sich Cross-Device Web-Anwendungen mit R Backend erzeugen und publizieren. Analyseresultate mutieren so zu interaktiven Web-Anwendungen, die schließlich, wie einleitend erwähnt, auf einer (unternehmenseigenen) Webseite veröffentlicht werden.
Data Science mit R Shiny
Data Science ist eine disziplinübergreifende Wissenschaft für die Vereinheitlichung von Statistik, Datenanalyse und Informatik. Mithilfe von Daten lassen sich reale Phänomene abbilden und analysieren, um bestimmte Zusammenhänge (beispielsweise von Wetter und Korrosion) zu ermitteln.
Bei Data Science handelt es sich also um ein Methodenwerkzeug zur Analyse und Präsentation von unternehmenseigenen Daten. Diese können auch für die Visualisierung und das Überwachen unternehmenseigener Leistungskennzahlen genutzt werden. Auf diese Art lassen sich Erkenntnisse für Unternehmensentscheidungen optimaler treffen und Prognosen hinsichtlich der künftigen Entwicklung von Leistungs- und anderer Kennzahlen durchführen.
Unternehmen möchten mithilfe einer ausgereiften Datenstrategie und Data Science Analysen und Web-Anwendungen nicht nur die Wahrscheinlichkeit prognostizieren, ob ein bestimmtes Ereignis eintritt, sondern wollen zudem auch den Zeitpunkt des Eintretens bestimmen. Im Personalmanagement ist beispielsweise der Zeitraum zwischen dem Onboarding und der Kündigung eines Arbeitsplatzes von Bedeutung.
Dies ist auch im Zusammenhang mit der Wartung von Maschinen hinsichtlich des Ausfallzeitpunkts von Maschinenteilen interessant. Diese Zeiträume lassen sich mithilfe von Überlebenszeitanalysn ermitteln. In der Regel werden dafür die Kaplan-Meier-Kurve bzw. Kaplan-Meier-Plot sowie die mediane Überlebenszeit und die Hazard Ratio genutzt.
R Shiny Dashboard
Für die Ersellung eines R Shiny Dashboards bestehen zwei Optionen, konkret das flexdashboard und das shinydashboard. Bei der ersten Variante handelt es sich um ein einfaches interaktives Dashboard, mit deren Hilfe eine Gruppe verwandter Datenvisualisierungen veröffentlicht werden kann.
R Dashboards unterstützen viele Komponenten inklusive HTML-Widgets, Basis-Gitter sowie Gittergrafiken, Tabellendaten, Messgeräte und Wertboxen sowie Anmerkungen in Textform. Zudem sind diese flexibel und einfach mithilfe von zeilen- und spaltenbasierten Layouts zu spezifizieren. Weiters lassen sich R Dashboards einfach für die mobile Anzeige optimieren.
Die zweite Dashboard-Version ist jene Dashboard-Form, die üblicherweise Unternehmen nutzen. Diese besteht aus einer Kopfzeile (dashboardHeader), einer Seitenleiste (dashboardHeader) sowie einem Textkörper (dashboardBody), wie am folgenden R-Code zu erkennen ist.
## ui.R ##library(shinydashboard)
dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody()
)
Mithilfe der Funktion shinyApp() lässt sich das Dashboard in der R-Konsole wie folgt anzeigen:
## app.R ##library(shiny)library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody()
)
server <- function(input, output) { }
shinyApp(ui, server)
Mit diesem Code wird allerdings nur ein Blanko-Dashboard angezeigt. Dieses gilt es mithilfe weiterer Code-Snippets zu erweitern, um in der Folge das Visualisieren der Daten zu ermöglichen.
## app.R ##library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(title = "Basic dashboard"),
dashboardSidebar(),
dashboardBody(
# Boxes need to be put in a row (or column)
fluidRow(
box(plotOutput("plot1", height = 250)),
box(
title = "Controls",
sliderInput("slider", "Number of observations:", 1, 100, 50)
)
)
)
)
server <- function(input, output) {
set.seed(122)
histdata <- rnorm(500)
output$plot1 <- renderPlot({
data <- histdata[seq_len(input$slider)]
hist(data)
})
}
shinyApp(ui, server)
Nun enthält das Dashboard Angaben zur Anzahl der Beobachtungen (number of observations) sowie einen Schieberegler, der sich – siehe Abbildung unten rechts – zwischen 1 (einer Beobachtung) und 100 (100 Beobachtungen) hin- und herschieben lässt.
als nächsten Schritt kann die Sidebar hinzugefügt werden. Um zu gewährleisten, dass sich diese wie Registerkarten eines Webseitenmenüs verhalten, müssen die Sidebar-Elemente menuItems sowie analog dazu die tabNames addiert werden.
Dies veranschaulicht nachfolgender Code:
## Sidebar content
dashboardSidebar(
sidebarMenu(
menuItem("Dashboard", tabName = "dashboard", icon = icon("dashboard")),
menuItem("Widgets", tabName = "widgets", icon = icon("th"))
)
)
## Body content
dashboardBody(
tabItems(
# First tab content
tabItem(tabName = "dashboard",
fluidRow(
box(plotOutput("plot1", height = 250)),
box(
title = "Controls",
sliderInput("slider", "Number of observations:", 1, 100, 50)
)
)
),
# Second tab content
tabItem(tabName = "widgets",
h2("Widgets tab content")
)
)
)
Das Dashboard wurde nun um die Sidebar erweitert und gestaltet sich wie folgt:
Fazit
In diesem Artikel wurde die Erstellung von R Shiny Dashboards und Web-Anwendungen für Data Science Analysen vorgestellt. Wie erwähnt, können solche Dashboards eine nützliche und aussagekräftige Grundlage für die Visualisierung von Analysen und Erkenntnissen auf der unternehmenseigenen Webseite sein.
Für weitere Informationen zu R Shiny Dashboards sowie Web-Anwendungen oder zu R Programmierung allgemein stehen Ihnen die Experten von Novustat gerne zur Verfügung. Nutzen Sie für eine unverbindliche Anfrage unser schriftliches Kontaktformular.
Weiterführende Quellen
- Grolemund, G. & Wickham, H. (2016): R for Data Science: Import, Tidy, Transform, Visualize, and Model Data, Sebastopol: O´Reilly.
- Ng, A. & Soo, K. (2018): Data Science, was ist das eigentlich? Berlin: Springer.
- RStudio (2021): Getting Started with Shiny, https://rstudio.github.io/shinydashboard/get_started.html (daraus entnommen: Code-Snippets sowie Abbildung)