Reporting mit R The R Bootcamp |
from dvisiondesign.net
In diesem Practical wirst aus deinem fertigen HTML RMarkdown Dokument eine Präsentation erstellen.
Am Ende des Practicals kann du:
ioslides
erstellen und Inhalte mit RMarkdown Code einfügen.Öffne dein TheRBootcamp
R Projekt. Es sollte die Ordner 1_Data
, 2_Assets
, und 3_Markdown
enthalten.
Öffne ein neues RMarkdown Skript und wähle das Presentation - Template “HTML” aus (siehe screenshot unten).
Trage als Titel Berlin
ein und drücke OK.
Lösche alles unterhalb des setup
Chunks.
Speichere das neue Markdown Skript unter dem Namen presentation_practical.Rmd
im 3_Markdown
Ordner ab.
Entferne die author:
und date:
Angaben aus dem YAML header (sofern diese vorliegen).
Bearbeite nun den YAML Header um das Dokument allgemein anzupassen. Füge zunächst unter title: Berlin
, in einer neuen Zeile, einen Untertitel ein. Knitte das Dokument. Siehst du den Untertitel?
subtitle: "Bericht: 18/19"
ioslides
und dann darunter, eine Ebene weiter eingerückt, die Zeile unten, welche den Pfad zum Logo dem YAML Header bereitstellt. Knitte das Dokument und schaue wie R das Logo einbindet.logo: ../2_Assets/airbnb.png
css: ../2_Assets/airbnb_presentation.css
---
title: "Berlin"
subtitle: "Bericht 18/19"
output:
ioslides_presentation:
logo: ../2_Assets/airbnb.png
css: ../2_Assets/airbnb_presentation.css
---
Lade im setup
Chunk die notwendigen Pakete tidyverse
, lubridate
, sjPlot
, knitr
und kableExtra
.
Inkludiere im setup
Chunk den folgenden Code um die AirBnB Daten zu laden und auf den Zeitraum 2018-2019 zu limitieren.
# Lade Daten
airbnb_1819 <- read_csv('../1_Data/airbnb.csv') %>%
filter(Erstellungsdatum > "2018-01-01",
Erstellungsdatum < "2019-12-31")
ggplot
, wie im gestrigen Dokument, anzupassen.# Ändere Thema zu minimal
theme_set(theme_minimal())
theme_update(panel.background = element_rect(fill = "transparent", colour = NA),
plot.background = element_rect(fill = "transparent", colour = NA),
axis.title.x = element_text(size = 16),
text = element_text(size=19))
# Setze defaults in ggplot
ggplot <- function(...) ggplot2::ggplot(...) +
scale_fill_gradientn(colors = c('#555555','#6BB7B9')) +
scale_colour_gradientn(colors = c('#555555','#6BB7B9'))
Füge nach dem setup
Chunk in einer neuen Zeile “# Neueinstellungen” ein. Damit definierst du den ersten Abschnitt mit grauem Hintergrund.
Knitte das Dokument. Nach dem Titelslide sollte es jetzt einen 2. Slide mit dem Titel “Neueinstellungen” geben.
In die nächste Zeile füge “## Entwicklung” ein, was einen ersten Slide mit Inhalt beginnt.
Öffne das R Markdown Dokument, das wir gestern erstellt haben (3_Markdown/airbnb_final.Rmd
), verwende das Dokument als Quelle für Code Chunks und Text in den folgenden Abschnitten.
Erstelle eine Bullet Point Liste in dem du -
vor den jeweiligen Text setzt. Übertrage aus dem Abschnitt “Entwicklung” die Anzahl der eingestellten Wohnungen als Inhalt des ersten Bullet Points. Bie Listen ist darauf zu achten, dass der erste Bullet mindestens eine Zeile Abstand zum darüberliegenden Text hat.
Erstelle einen weiteren Bullet Point mit den Wohnungseinstellungen für das Jahr 2018 sowie das Jahr 2019.
Dokumentiere im dritten Bullet Point die durchschnittliche Verfügbarkeit in den nächsten 3 Monaten.
Knitte das Dokument. Sind die Bullets nun gestaffelt?
Füge einen neuen Slide ebenfalls mit dem Titel “Entwicklung” ein. Verwende zwei #
.
Füge den chunk für die Abbildung 1 (Neueinstellungen pro Monat) aus dem R Markdown Dokument ein so dass die Abbildung in den Slides angezeigt wird.
Vergiss nicht in den Chunk Optionen fig.cap = cap
anzugeben, damit die Bildunterschrift angezeigt wird!
Knitte
das Dokument. Enthält der Slide die Abbildung 1?
Füge einen neuen Slide mit dem Titel “Stadtteile” ein (zwei #
).
Mit Hilfe einer HTML Tabelle (oder alternativer Methoden) erstelle ein Layout mit 2 Spalten. Liste in der linken Spalte die Stadtteile auf (mit inline
Code) und in der rechten Spalten die prozentuellen Veränderungen.
Stelle auf dem nächste Slide (gleicher Titel wie zuvor) die Abbildung 2 (Neueinstellungen pro Bezirk) als Grafik dar. Achte darauf, dass alle R Chunks (auch jene mit Berechnungen) vorhanden sind.
Knitte
das Dokument. Werden die 2. Grafiken, die Bullets und die Tabelle korrekt angezeigt?
Erstelle einen neuen Abschnitt “Preis” und einen neuen Slide “Einfluss der Ausstattung”.
Füge einen Chunk mit dem Code zur Berechnung der Ausstattungsmerkmale ein.
Auf diesem Slide inkludiere die Tabelle mit Austattungsmerkmalen.
Auf dem gleichen Slide, unter der Tabelle, füge den letzten Satz des Abschnittes “Der Einfluss der Ausstattung” zum stark negativen Effekt der Küche ein. Füge HTML Code ein, der diesen die Schrift fett formatiert.
Knitte das Dokument. Wird die Tabelle korrekt angezeigt?
Optional: Verändere die Tabelle so, dass die Schriftgrösse in allen Zellen gleich gross ist und dass Zellen mit einer Zahl > 100 rot angezeigt werden (Hinweis: color = ifelse(x > 100, "red", "black")
)
Füge eine neuen Slide mit dem Titel “Regressionsmodell” ein.
Kopiere den Code Chunk mit der Liste der Ausstattungsmermale und berechne damit eine Regression in der Preis, mit diesen Ausstattungsmermalen und Hotel, vorhergesagt wird.
Stelle die Ergebnisse der Regression, mit Hilfe der Funktion tab_model
auf dem Slide dar.
Inkludiere den R Chunk in dem der Anteil Hotels an allen Objekten berechnet wird.
Ergänze in fetter Schriftart den Abschlusssatz (“Der Anteil …”) unter der Regressionstabelle.
Optional: Mit dem Attribut col.order
kannst du die Reihenfolge und Art der Ergebnisse in der Regressionstabelle festlegen. Verändere die Reihenfolge der Spalten, sodass zuerst Konfidenzintervalle (ci
) und dann die Koeffizienten (est
) angezeigt werden.
Optional: Füge Sterne (anstatt der p-Werte) für signifikante Estimates ein (Tip: p.style
).
Slides können je nach Inhalt mehr oder weniger gut über einen Browser als PDF ausgegeben werden. Öffne hierzu die durch das Knitten erzeugte .html
Datei in einem Browser (z.B., Chrome).
Dann drücke Cmd + P
oder Ctrl + P
um das Druckmenu zu öffnen wo du PDF als Output auswählen musst.
Speichere das PDF auf deine Festplatte und schaue ob alles angemessen ausgegeben wurde.
Der airbnb.csv Datensatz enthält Zahlen zu 9868 Berliner Airbnbs
Variable | Beschreibung |
---|---|
Preis | Preis pro Nacht |
Erstellungsdatum | Eröffnungsdatum des Airbnbs |
Unterkunftsart | Appartement, Loft, House, etc. |
Schlafplätze | Anzahl Schlafplätze |
Schlafzimmer | Anzahl Schlafzimmer |
Badezimmer | Anzahl Badezimmer |
Reinigungsgebühr | Reinigungsgebühr |
Verfügbarkeit_90Tage | |
Viertel | In welchem Viertel befindet sich das Airbnb |
Stadtteil | In welchem Stadtteil befindet sich das Airbnb |
Breitengrad | Breitengrad |
Längengrad | Längengrad |
Host_id | Host id |
Host_seit | Erfahrung des Hosts |
Host_antwortzeit | Host Antwortzeit |
Host_antwortrate | Host Antwortrate |
Host_superhost | Superhost Ja/Nein |
Host_anzahl | Anzahl Gäste |
Rating_gesamt | Gesamtrating |
Rating_genauigkeit | Genauigkeitsrating |
Rating_sauberkeit | Sauberkeitsrating |
Rating_checkin | Checkinrating |
Rating_kommunikation | Kommunikationsrating |
Rating_lage | Lagerating |
Rating_wertigkeit | Wertigkeitsrating |
Küche | Küche vorhanden TRUE/FALSE |
Wifi | WLAN vorhanden TRUE/FALSE |
TV | TV vorhanden TRUE/FALSE |
Kaffeemaschine | Kaffeemaschine vorhanden TRUE/FALSE |
Geschirrspüler | Geschirrspüler vorhanden TRUE/FALSE |
Terrasse_Balkon | Terrasse/Balkon vorhanden TRUE/FALSE |
Badewanne | Badewanne vorhanden TRUE/FALSE |
Check_in_24h | 24h Check-In vorhanden TRUE/FALSE |
Paket | Installation |
---|---|
tidyverse |
install.packages("tidyverse") |
lubridate |
install.packages("tidyverse") |
knitr |
install.packages("knitr") |
sjPlot |
install.packages("sjPlot") |
kabelExtra |
install.packages("kableExtra") |