`markdown # Erklärung des R-Codes: Umfrage-Datenanalyse
library(tidyverse) # Sammlung von Paketen für Datenbearbeitung und Visualisierung
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.0 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(httr) # Für HTTP-Anfragen (z. B. Daten von Webseiten laden)
library(readr) # Zum Einlesen von Tabellen (z. B. CSV, TSV)
tidyverse: Hilft, Daten zu bereinigen, umzuformen und
zu visualisieren.httr: Wird genutzt, um Daten aus dem Internet
herunterzuladen (hier nicht direkt verwendet, aber geladen).readr: Liest Tabellen-Daten (z. B. Excel-ähnliche
Dateien) in R ein.## 2. Daten importierenr # URL der Datei (wo die Daten im Internet liegen)
url <- "https://raw.githubusercontent.com/rstudio/r-community-survey/master/2020/data/2020-english-survey-final.tsv"
survey_english <- read_tsv(url)
head(survey_english)
read_tsv() heruntergeladen und in
eine Tabelle (survey_english) geladen.head(survey_english) zeigt die ersten 6
Zeilen der Tabelle an, um einen Überblick zu bekommen.## 3. Daten analysieren und visualisierenr survey_english |> count(Qr_how_often_used, Qr_experience) |> arrange(Qr_how_often_used, desc(n)) |> group_by(Qr_how_often_used) |> mutate(percent = n / sum(n) * 100) |> ungroup() |> ggplot(aes(x = Qr_how_often_used, y = n, fill = Qr_experience)) + geom_col(position = “dodge”) + labs( title = “R Community Survey 2020: Experience with R”, x = “How often R is used”, y = “Number of respondents”, fill = “Experience level” ) + theme_minimal()
count) r
count(Qr_how_often_used, Qr_experience)Qr_how_often_used (Wie oft wird R genutzt? z. B.
“täglich”, “wöchentlich”)Qr_experience (Erfahrungslevel, z. B. “Anfänger”,
“Fortgeschritten”)Qr_how_often_usedQr_experiencen (Anzahl der Antworten pro Kombination).arrange) r
arrange(Qr_how_often_used, desc(n))Qr_how_often_used (z. B. “täglich” zuerst).n (Anzahl)
absteigend sortiert (desc(n)).group_by +
mutate) r group_by(Qr_how_often_used) |>
mutate(percent = n / sum(n) * 100)Qr_how_often_used.Qr_experience).ungroup) r
ungroup()ggplot) r
ggplot(aes(x = Qr_how_often_used, y = n, fill = Qr_experience)) +
geom_col(position = “dodge”) + labs(…) + theme_minimal()Qr_how_often_used).n).Qr_experience).position = "dodge": Die Balken werden
nebeneinander statt übereinander angezeigt.labs(): Fügt Titel und
Achsenbeschriftungen hinzu.theme_minimal(): Macht das Diagramm
schlicht und übersichtlich.### Zusammenfassung: Was zeigt das Diagramm? - Frage: Wie hängt die Häufigkeit der R-Nutzung mit dem Erfahrungslevel zusammen? - Antwort: - Zeigt z. B., ob Anfänger R seltener nutzen als Fortgeschrittene. - Oder ob die meisten täglichen Nutzer Experten sind.
| ### Beispiel-Ausgabe (wie das Diagramm
aussehen könnte): |
### Wichtige Begriffe: | Begriff | Erklärung |
|——————|—————————————————————————| | Data Frame | Eine
Tabelle in R (wie Excel). | | Pipe (|>)
| Leitet das Ergebnis eines Schritts zum nächsten weiter (wie ein
Fließband). | | ggplot | Ein Paket zum
Erstellen von Diagrammen. | | count() |
Zählt Kombinationen von Werten in Spalten. | |
group_by() | Fasst Daten nach einer Spalte
zusammen (z. B. für Prozentberechnungen). |
—`
Warum so viele %>% oder
|>? Das ist wie ein Fließband:
Jeder Schritt (count, arrange, …) bekommt die
Daten vom vorherigen Schritt und gibt sie weiter.
Beispiel:
Daten → Zählen → Sortieren → Prozent berechnen → Diagramm erstellen.
Was ist aes() in
ggplot? Steht für “Ästhetik” –
hier wird definiert, welche Daten auf welche Achse oder Farbe gemappt
werden.
Falls etwas unklar ist, frag gern nach! 😊