Aufgabe_3.R
von tegula- SNIPPET_DESC:
- Bitte Dateinamensendung .txt entfernen.
- SNIPPET_CREATION_TIME:
- 07.09.2022 15:58:52
- SNIPPET_PRUNE_TIME:
- Unendlich
- SNIPPET_TEXT:
-
- # Aufgabe 3: Mehrere Einwohner von Neu New York wurden nach ihrer Lieblingsfarbe gefragt. Das Ergebnis findest du im NoPaste: <https://nopaste.debianforum.de/41775>. Ordne ihren Antworten mit Hilfe regulärer Ausdrücke den folgenden Kategorien zu "Rot", "Blau", "Grün", "Andere Farbe" und NA (fehlender Wert).
- #' ------------------------
- #' ------------------------
- # Packages Laden
- library(tidyverse)
- #' ------------------------
- #' ------------------------
- # Datensatz laden
- load("umfrage.RData")
- #' ------------------------
- #' ------------------------
- # Rekodieren:
- ## Ausgangsvariable: farbe.
- ## Zielvariable: farbe_num.
- ## Kodierung der Zielvariablen (farbe_num)
- ### -> 1 = Rot
- ### -> 2 = Grün
- ### -> 3 = Blau
- ### -> 4 = Andere Farbe
- ### -> (und NA für fehlende Werte)
- ## Zielvariable erzeugen und erst mal für alle Befragten auf NA (Missing Value bzw. fehlender Wert) setzen
- umfrage$farbe_num <- NA
- ## Rekodieren: Wenn der RE ".*[rR](o|ö)t" die Ausgangsvariable matched, so wird der Zielvariable der Wert 1 (Rot) zugewiesen.
- umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
- str_detect(".*[rR](o|ö)t"),
- yes = 1,
- no = umfrage$farbe_num)
- ## Rekodieren: Wenn der RE "[gG]rün" die Ausgangsvariable matched, so wird der Zielvariable der Wert 2 (Grün) zugewiesen
- umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
- str_detect("[gG]rün"),
- yes = 2,
- no = umfrage$farbe_num)
- ## Rekoderen: Wenn der RE "[bB]l(a|ä)u" die Ausgangsvariable matched, so wird der Zielvariable der Wert 3 (Blau) zugewiesen
- umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
- str_detect("[bB]l(a|ä)u"),
- yes = 3,
- no = umfrage$farbe_num)
- ## Rekodieren: Wenn die Ausgangsvariable, die im folgenden definierten Farbbezeichnungen (andere_farben) enthält, so wird der Zielvariable der Wert "Andere Farbe" zugewiesen.
- andere_farben = str_c("[oO]range",
- "[gG]elb",
- "[iI]ndigo",
- "[vV]iolett",
- "[lL]ila",
- "[pP]ink",
- "[wW]ei(ß|ss)",
- "[sS]chw(a|ä)rz",
- "[bB]r(a|ä)un",
- "[bB]eige",
- "[bB]esch",
- "[oO]cker",
- "[sS]ilber",
- sep = "|")
- umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
- str_detect(andere_farben),
- yes = 4,
- no = umfrage$farbe_num)
- ## Rekodieren: Variablen- und Werte beschriften
- ### Ausgangsvariable (nur Variablenbeschriftung hinzufügen)
- expss::var_lab(umfrage$farbe) <- "Lieblingsfarbe (unveränderte Antworten)"
- ## Zielvariable (sowohl eine Variablenbeschriftung als auch Wertebeschriftungen hinzufügen)
- umfrage <- expss::apply_labels(data = umfrage,
- farbe_num = "Lieblingsfarbe (kategorisiert)",
- farbe_num = c("Rot" = 1,
- "Grün" = 2,
- "Blau" = 3,
- "Andere Farbe" = 4))
- ## Rekodieren: Umwandlung der Zielvariable. IST: Numerisch. SOLL: Faktor (kategorial).
- ## eigentliche Umwandlung
- umfrage$farbe_fac <- as.factor(umfrage$farbe_num)
- ## Bei Umwandlung verloren gegangene Variablenbeschriftung "wieder" anbringen
- expss::var_lab(umfrage$farbe_fac) <- "Lieblingsfarbe (kategorisiert)"
- #' ------------------------
- #' ------------------------
- # Nachkontrolle der Rekodierung (Teil 1): Sichtung aller Fälle für die Variablen "name", "farbe" (das ist die Ausgangsvariable) und farbe_fac (das ist die Zielvariable)
- umfrage %>%
- dplyr::as_tibble() %>%
- select(name, farbe, farbe_fac)
- # Nachkontrolle der Rekodierung (2): Kreuztabelle ausgeben lassen. Zeilenvariable ist die Ausgangsvariable der Rekodierung(farbe). Spaltenvariable ist die Zielvariable der Rekodierung (farbe_fac)
- summarytools::ctable(x = umfrage$farbe,
- y = umfrage$farbe_fac) %>%
- summarytools::view() # HTML-Ausgabe, Zeile entfernen für Ausgabe auf R-Konsole
- #' ------------------------
- #' ------------------------
- # Häufigkeitstabelle der Farb-Kategorien
- umfrage$farbe_fac %>%
- summarytools::freq() %>%
- summarytools::view() # HTML-Ausgabe, Zeile entfernen für Ausgabe auf R-Konsole
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN