# www.websiteboosting.com / Patrik Lürwer & Mario Fischer # Version 1.1 vom 2.2.2021, da Screaming Frog die Spaltennamen geändert hat! # Codebeispiel für R - Website Boosting Ausgabe 63 # Aus der Serie "R Leuchtungen", Teil 2 # Alle Zeilen, die mit # beginnen, dienen nur der Erklärung # und werden von R ignoriert. # Hinweis. Die beiden Librarys müssen einmalig installiert # werden. Wie das geht, steht im Heft! Danach kann man die beiden Zeilen löschen. # Hier folgen diese beiden Librarys: library(tidyverse) library(lubridate) # 1. Crawl einlesen crawl <- read_csv("internal_all.csv") %>% janitor::clean_names() # Spaltennamen normalisieren # 2. Daten aufbereiten crawl_html_with_time_on_page <- crawl %>% filter( str_detect(content_type, "html"), !is.na(ga_avg_time_on_page), # Nur die html-URLs behalten, für die es auch eine positive Lesedauer in GA gibt ) %>% select(address, word_count, ga_avg_time_on_page) %>% # Nur die benötigten Spalten behalten, alle anderen braucht man hier nicht mutate( actual_reading_duration_in_sec = hms(ga_avg_time_on_page), # Die Zeitangabe mittels der Library lubridate::hms() (Stunde Minute Sekunde) in eine zeitliche Periode umwandeln, um im nächste Schritte einfacher die Dauer in Sekunden erhalten zu können actual_reading_duration_in_sec = period_to_seconds(actual_reading_duration_in_sec), # Die Perioden von Stunden, Minuten und Sekunden in Sekunden umrechnen expected_reading_duration_in_sec = round(word_count / 220 * 60, 0), # Die erwartete Lesedauer in Sekunden bei den üblichen 220 Wörtern Lesegeschwindigkeit pro Minute # Bei Bedarf einfach die Zahl 220 in der obigen Formel anpassen diff_reading_duration_in_sec = actual_reading_duration_in_sec - expected_reading_duration_in_sec # Berechnung der Differenz von erwarteter und tatsächlicher Lesedauer ) %>% arrange(desc(diff_reading_duration_in_sec)) # Absteigend nach der Differenz sortieren, um die wichtigsten URLs, die man prüfen sollte, am Anfang der Tabelle zu positionieren. ########################### # 3a. # Entweder eine Punktegrafik erzeugen # Achtung: Diesen oder alternativ den Abschnitt unten auswählen, die nicht benötigten Zeilen einfach löschen ########################### ggplot(crawl_html_with_time_on_page, aes(actual_reading_duration_in_sec, expected_reading_duration_in_sec)) + geom_point() + geom_abline() + labs(title = "Erwartete Lesezeit vs. tatsächliche Lesezeit", subtitle = "Punkte oberhalb der Linie zeigen eine kürzere Lesezeit als erwartet an", x = "Tatsächliche Lesezeit in Sekunden", y = "Erwartete Lesezeit in Sekunden") ########################### # 3b. # Oder eine Balkengrafik erzeugen # Achtung: Diesen oder alternativ den Abschnitt oben auswählen, die nicht benötigten Zeilen einfach löschen ########################### ggplot(crawl_html_with_time_on_page, aes(diff_reading_duration_in_sec)) + geom_histogram() + geom_vline(xintercept = 0) + labs(title = "Verteilung der Differenzen zw. erwarteter und tatsächlicher Lesezeit", subtitle = "Negative Werte zeigen eine kürzere, tatsächliche Lesezeit an als erwartet", x = "Differenz von erwarteter und tatsächlicher Lesezeit in Sekunden", y = "Anzahl an URLs")