Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Was ist glänzend?

Wenn du noch nie Shiny benutzt hast, herzlich willkommen! Shiny ist ein R-Paket, mit dem du auf einfache Weise reichhaltige, interaktive Webanwendungen erstellen kannst. Mit Shiny kannst du deine Arbeit in R über einen Webbrowser zugänglich machen, sodass jeder sie nutzen kann. Shiny lässt dich fantastisch aussehen, indem es dir die Erstellung von ausgefeilten Webanwendungen mit minimalem Aufwand ermöglicht.

In der Vergangenheit war es für die meisten R-Nutzer schwer, Webanwendungen zu erstellen, weil:

  • Du brauchst fundierte Kenntnisse von Webtechnologien wie HTML, CSS und JavaScript.

  • Die Entwicklung komplexer interaktiver Apps erfordert eine sorgfältige Analyse der Interaktionsabläufe, um sicherzustellen, dass bei einer Änderung der Eingaben nur die entsprechenden Ausgaben aktualisiert werden.

Shiny macht es für R-Programmierer deutlich einfacher, Webanwendungen zu erstellen:

  • Eine sorgfältig zusammengestellte Reihe von Funktionen für die Benutzeroberfläche (kurz UI), die HTML, CSS und JavaScript generieren, die für gängige Aufgaben benötigt werden. Das bedeutet, dass du die Details von HTML/CSS/JavaScript erst dann kennen musst, wenn du über die Grundlagen hinausgehen willst, die dir Shiny zur Verfügung stellt.

  • Die Einführung einer neuen Art der Programmierung, der reaktiven Programmierung, die automatisch die Abhängigkeiten von Codeteilen verfolgt. Das bedeutet, dass Shiny bei jeder Änderung eines Inputs automatisch herausfinden kann, wie man den geringsten Aufwand betreibt, um alle zugehörigen Outputs zu aktualisieren.

Menschen benutzen Shiny, um:

  • Erstelle Dashboards, die wichtige Leistungsindikatoren auf höchster Ebene aufzeigen und gleichzeitig einen Drill-Down auf Kennzahlen ermöglichen, die genauer untersucht werden müssen.

  • Ersetze Hunderte von PDF-Seiten durch interaktive Apps, die es dem Nutzer ermöglichen, genau zu dem Teil der Ergebnisse zu springen, der ihn interessiert.

  • Kommuniziere komplexe Modelle mit informativen Visualisierungen und interaktiven Sensitivitätsanalysen für ein nichttechnisches Publikum.

  • Biete Self-Service-Datenanalysen für gängige Arbeitsabläufe an, indem du E-Mail-Anfragen durch eine Shiny-App ersetzt, mit der Nutzer ihre eigenen Daten hochladen und Standardanalysen durchführen können. Du kannst Nutzern, die keine Programmierkenntnisse haben, anspruchsvolle R-Analysen zur Verfügung stellen.

  • Erstelle interaktive Demos für den Unterricht in Statistik und Datenwissenschaft, die es den Lernenden ermöglichen, die Eingaben zu verändern und die Auswirkungen dieser Änderungen in einer Analyse zu beobachten.

Kurz gesagt, Shiny gibt dir die Möglichkeit, einige deiner R-Superkräfte an jeden weiterzugeben, der das Web nutzen kann.

Wer sollte dieses Buch lesen?

Dieses Buch richtet sich vor allem an zwei Zielgruppen:

  • R-Nutzer, die Shiny kennenlernen möchten, um ihre Analysen in interaktive Web-Apps zu verwandeln. Um den größten Nutzen aus diesem Buch zu ziehen, solltest du mit der Datenanalyse in R vertraut sein und zumindest ein paarFunktionen geschrieben haben.

  • Bestehende Shiny-Benutzer, die ihr Wissen über die Shiny zugrunde liegende Theorie verbessern wollen, um schneller und einfacher qualitativ hochwertige Apps zu schreiben. Dieses Buch ist besonders hilfreich, wenn deine Apps immer größer werden und du Probleme hast, die Komplexität zu bewältigen.

Was wirst du lernen?

Das Buch ist in vier Teile gegliedert:

  1. In Teil I lernst du die Grundlagen von Shiny kennen, damit du so schnell wie möglich loslegen kannst. Du erfährst etwas über die Grundlagen der App-Struktur, nützliche UI-Komponenten und die Grundlagen der reaktiven Programmierung.

  2. Teil II baut auf den Grundlagen auf und hilft dir, häufige Probleme zu lösen. Dazu gehören die Rückmeldung an den Nutzer, das Hoch- und Herunterladen von Daten, die Generierung von UI mit Code, die Reduzierung von Code-Duplikaten und die Verwendung von Shiny zur Programmierung des Tidyverse.

  3. In Teil III tauchst du tief in die Theorie und Praxis der reaktiven Programmierung ein, dem Programmierparadigma, das Shiny zugrunde liegt. Wenn du bereits Shiny-Benutzer bist, wirst du von diesem Kapitel am meisten profitieren, da du eine solide theoretische Grundlage erhältst, die es dir ermöglicht, neue Tools zu entwickeln, die speziell auf deine Probleme zugeschnitten sind.

  4. In Teil IV geben wir schließlich einen Überblick über nützliche Techniken, damit deine Shiny-Apps in der Produktion gut funktionieren. Du lernst, wie du komplexe Anwendungen in Funktionen und Module zerlegst, wie du deinen Code mit Hilfe von Paketen organisierst, wie du deinen Code testest, um sicherzustellen, dass er korrekt ist, und wie du die Leistung messen und verbessern kannst.

Was wirst du nicht lernen?

Der Schwerpunkt dieses Buches liegt auf der Erstellung effektiver Shiny-Apps und dem Verständnis der zugrunde liegenden Theorie der Reaktivität. Ich tue mein Bestes, um bewährte Methoden für Data Science, R-Programmierung und Softwareentwicklung vorzustellen, aber du wirst andere Referenzen brauchen, um diese wichtigen Fähigkeiten zu beherrschen. Wenn dir mein Text in diesem Buch gefällt, werden dir vielleicht auch meine anderen Bücher zu diesen Themen gefallen: R for Data Science, Advanced R und R Packages.

Es gibt auch eine Reihe wichtiger Themen, die für Shiny spezifisch sind und die ich nicht abdecke:

  • Dieses Buch behandelt nur das integrierte Toolkit für die Benutzeroberfläche. Es bietet zwar nicht das schönste Design, aber es ist einfach zu erlernen und bringt dich weit voran. Wenn du zusätzliche Anforderungen hast (oder dir die Standardeinstellungen zu langweilig sind), gibt es eine Reihe anderer Pakete, die alternative Frontends anbieten. Siehe "Bootstrap" für weitere Informationen.

  • Einsatz von Shiny-Anwendungen. Shiny "in Produktion" zu bringen, liegt außerhalb des Rahmens dieses Buches, weil es von Unternehmen zu Unternehmen sehr unterschiedlich ist und vieles davon nichts mit R zu tun hat (die meisten Herausforderungen sind eher kultureller oder organisatorischer, nicht technischer Natur). Wenn du Shiny in der Produktion noch nicht kennst, empfehle ich dir, mit Joe Chengs rstudio::conf Keynote 2019 zu beginnen. Sie gibt dir einen Überblick darüber, was der Einsatz von Shiny in der Produktion bedeutet und wie du einige der Herausforderungen meistern kannst, mit denen du wahrscheinlich konfrontiert wirst. Danach kannst du dich auf der Website von RStudio Connect über das RStudio-Produkt für die Bereitstellung von Apps in deinem Unternehmen informieren und auf der Shiny-Website über andere gängigeEinsatzszenarien.

Voraussetzungen

Bevor wir fortfahren, stelle sicher, dass du alle Software hast, die du für dieses Buch brauchst:

R

Wenn du R noch nicht installiert hast, liest du vielleicht das falsche Buch; ich gehe in diesem Buch davon aus, dass du mit R vertraut bist. Wenn du den Umgang mit R lernen möchtest, empfehle ich dir mein Buch R for Data Science, mit dem du ohne großen Aufwand mit R arbeiten kannst.

RStudio

RStudio ist eine kostenlose und quelloffene integrierte Entwicklungsumgebung (IDE) für R. Du kannst Shiny-Apps zwar mit jeder R-Umgebung (einschließlich R GUI und ESS) schreiben und verwenden, aber RStudio hat einige nette Funktionen speziell für das Erstellen, Debuggen und Bereitstellen von Shiny-Apps. Wir empfehlen dir, RStudio Desktop herunterzuladen und auszuprobieren, aber du brauchst es nicht, um mit Shiny oder mit diesem Buch erfolgreich zu sein.

R Pakete

Dieses Buch verwendet eine ganze Reihe von R-Paketen. Du kannst sie alle auf einmal installieren, indem du sieausführst:

install.packages(c(
  "gapminder", "ggforce", "gh", "globals", "openintro", "profvis",
  "RSQLite", "shiny", "shinycssloaders", "shinyFeedback",
  "shinythemes", "testthat", "thematic", "tidyverse", "vroom",
  "waiter", "xml2", "zeallot"
))

Wenn du Shiny in der Vergangenheit heruntergeladen hast, stelle sicher, dass du mindestens die Version 1.6.0 hast.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Code-Beispiele verwenden

Zusätzliches Material von (Codebeispiele, Übungen usw.) steht unter https://mastering-shiny.org zum Download bereit . Die Codebeispiele in diesem Buch sind unter der MIT-Lizenz lizenziert.

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eineGenehmigung erforderlich.

Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Mastering Shiny von Hadley Wickham (O'Reilly). Copyright 2021 Hadley Wickham, 978-1-492-04738-4."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.

Wie du uns kontaktierst

Bitte wende dich mit Kommentaren und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/mastering-shiny aufrufen .

Schreib eine E-Mail an , um Kommentare oder technische Fragen zu diesem Buch zu stellen.

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.

Finde uns auf Facebook: http://facebook.com/oreilly

Folge uns auf Twitter: http://twitter.com/oreillymedia

Schau uns auf YouTube: http://youtube.com/oreillymedia

Danksagungen

Dieses Buch wurde in aller Öffentlichkeit geschrieben und die Kapitel wurden nach ihrer Fertigstellung auf Twitter bekannt gegeben. Es ist ein echtes Gemeinschaftswerk: Viele Menschen haben Entwürfe gelesen, Tippfehler korrigiert, Verbesserungen vorgeschlagen und Inhalte beigesteuert. Ohne diese Personen wäre das Buch nicht annähernd so gut, wie es ist, und ich bin ihnen sehr dankbar für ihre Hilfe.

Ein großes Dankeschön an alle 83 Personen, die über GitHub Pull-Requests spezifische Verbesserungen beigetragen haben (in alphabetischer Reihenfolge nach Benutzernamen): Adam Pearce (@1wheel), Adi Sarid (@adisarid), Alexandros Melemenidis (@alex-m-ffm), Anton Klåvus (@antonvsdata), Betsy Rosalen (@betsyrosalen), Michael Beigelmacher (@brooklynbagel), Bryan Smith (@BSCowboy), c1au6io_hh (@c1au6i0), @canovasjm, Chris Beeley (@ChrisBeeley), @chsafouane, Chuliang Xiao (@ChuliangXiao), Conor Neilson (@condwanaland), @d-edison, Dean Attali (@daattali), DanielDavid521 (@Danieldavid521), David Granjon (@DivadNojnarg), Eduardo Vásquez (@edovtp), Emil Hvitfeldt (@EmilHvitfeldt), Emilio (@emilopezcano), Emily Riederer (@emilyriederer), Eric Simms (@esimms999), Federico Marini (@federicomarini), Frederik Kok Hansen (@fkoh111), Frans van Dunné (@FvD), Giorgio Comai (@giocomai), Hedley (@heds1), Henning (@henningsway), Hlynur (@hlynurhallgrims), @hsm207, @jacobxk, James Pooley (@jamespooley), Joe Cheng (@jcheng5), Julien Colomb (@jcolomb), Juan C. Rodriguez (@jcrodriguez1989), Jennifer (Jenny) Bryan (@jennybc), Jim Hester (@jimhester), Joachim Gassen (@joachim-gassen), Jon Calder (@jonmcalder), Jonathan Carroll (@jonocarroll), Julian Stanley (@julianstanley), @jyuu, @kaanpekel, Karandeep Singh (@kdpsingh), Robert Kirk DeLisle (@KirkDCO), Elaine (@loomalaine), Malcolm Barrett (@malcolmbarrett), Marly Gotti (@marlycormar), Matthew Wilson (@MattW-Geospatial), Matthew T. Warkentin (@mattwarkentin), Mauro Lepore (@maurolepore), Maximilian Rohde (@maxdrohde), Matthew Berginski (@mbergins), Michael Dewar (@michael-dewar), Mine Cetinkaya-Rundel (@mine-cetinkaya-rundel), Maria Paula Caldas (@mpaulacaldas), nthobservation (@nthobservation), Pietro Monticone (@pitmonticone), psychometrician (@psychometrician), Ram Thapa (@raamthapa), Janko Thyson (@rappster), Rebecca Janis (@rbjanis), Tom Palmer (@remlapmot), Russ Hyde (@russHyde), Barret Schloerke (@schloerke), Scott (@scottyd22), Matthew Sedaghatfar (@sedaghatfar), Shixiang Wang (@ShixiangWang), Praer (Suthira Owlarn) (@sowla), Sébastien Rochette (@statnmap), @stevensbr, André Calero Valdez (@Sumidu), Tanner Stauss (@tmstauss), Tony Fujs (@tonyfujs), Stefan Moog (@trekonom), Jeff Allen (@trestletech), Trey Gilliland (@treygilliland), Albrecht (@Tungurahua), Valeri Voev (@ValeriVoev), Vickus (@Vickusr), William Doane (@WilDoane), 黄湘云 (@XiangyunHuang), und gXcloud (@xwydq).

Wie dieses Buch entstanden ist

Dieses Buch wurde in RStudio mit Bookdown geschrieben. Die Website des Buches wird mit netlify gehostet und wird nach jedem Commit automatisch von GitHub Actions aktualisiert. Der vollständige Quelltext ist auf GitHub verfügbar.

Diese Version des Buches wurde mit R Version 4.0.3 (2020-10-10) und den folgenden Paketen erstellt:

Paket Version Quelle

gapminder

0.3.0

Standard (@0.3.0)

ggforce

0.3.2

Standard (@0.3.2)

gh

1.2.0

Standard (@1.2.0)

Globale

0.14.0

Standard (@0.14.0)

openintro

2.0.0

Standard (@2.0.0)

profvis

0.3.7.9000

GitHub (rstudio/profvis@ca1b272)

RSQLite

2.2.3

Standard (@2.2.3)

Glänzend

1.6.0

Standard (@1.6.0)

shinycssloaders

1.0.0

Standard (@1.0.0)

shinyFeedback

0.3.0

Standard (@0.3.0)

shinythemes

1.2.0

Standard (@1.2.0)

testdass

3.0.2.9000

GitHub (r-lib/testthat@4793514)

Thematisch

0.1.1

GitHub (rstudio/thematic@d78d24a)

tidyverse

1.3.0

Standard (@1.3.0)

vroom

1.3.2

Standard (@1.3.2)

Kellner

0.2.0

Standard (@0.2.0)

xml2

1.3.2

Standard (@1.3.2)

zeallot

0.1.0

Standard (@0.1.0)

Get Glänzend meistern now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.