# Codebeispiel für R - Website Boosting Ausgabe 62 # 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! # 1. Packages laden bzw. aktivieren library(tidyverse) library(janitor) # 2. Namensspalten normalisieren für den einfacheren späteren Umgang crawl <- read_csv("search_console_all.csv") %>% clean_names() # 3. Alle Einträge, die keine Clicks haben mit dem Wert 0 füllen crawl <- crawl %>% replace_na(list(clicks = 0)) # 4. Nur indexierbare URLs herausfiltern crawl <- crawl %>% filter(indexability == "Indexable") # 5. Daten aufbereiten: crawl <- crawl %>% arrange(desc(clicks)) %>% mutate(pct_clicks = clicks / sum(clicks), cum_pct_clicks = cumsum(pct_clicks), url_rank = row_number()) # 6. Grafische Ausgabe ggplot(crawl, aes(url_rank, cum_pct_clicks)) + geom_line(size = 1) + theme_minimal() + theme(panel.grid.minor = element_blank()) + labs(title = "Wie viele meiner URLs zeichnen für welchen Click-Anteil verantwortlich?", x = "Anzahl URLs", y = "Kumulierter prozentualer\nAnteil der Clicks") # ggf noch die nachfolgende Zeile an die letzte unter 6. anhängen für # eine logarithmische Darstellung der X-Achse, das # dabei entfernen # + scale_x_log10() # 7. Percentile berechnen get_percentiles <- function(df, percentiles = c(0.25, 0.5, 0.75, 1)) { v <- integer() for (percentile in percentiles) { url_rank <- df %>% arrange(abs(cum_pct_clicks - percentile)) %>% .[[1, "url_rank"]] v <- c(v, url_rank) } names(v) <- percentiles return(v) } get_percentiles(crawl)