# Aufgabe 3: Mehrere Einwohner von Neu New York wurden nach ihrer Lieblingsfarbe gefragt. Das Ergebnis findest du im NoPaste: . 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