NoPaste

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:
  1. # 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).
  2.  
  3.  
  4. #' ------------------------
  5. #' ------------------------
  6.  
  7. # Packages Laden
  8. library(tidyverse)
  9.  
  10. #' ------------------------
  11. #' ------------------------
  12.  
  13. # Datensatz laden
  14. load("umfrage.RData")
  15.  
  16. #' ------------------------
  17. #' ------------------------
  18.  
  19. # Rekodieren:
  20. ## Ausgangsvariable: farbe.
  21. ## Zielvariable: farbe_num.
  22. ## Kodierung der Zielvariablen (farbe_num)
  23. ### -> 1 = Rot
  24. ### -> 2 = Grün
  25. ### -> 3 = Blau
  26. ### -> 4 = Andere Farbe
  27. ### -> (und NA für fehlende Werte)
  28.  
  29.  
  30. ## Zielvariable erzeugen und erst mal für alle Befragten auf NA (Missing Value bzw. fehlender Wert) setzen
  31. umfrage$farbe_num <- NA
  32. ## Rekodieren: Wenn der RE ".*[rR](o|ö)t" die Ausgangsvariable matched, so wird der Zielvariable der Wert 1 (Rot) zugewiesen.
  33. umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
  34.                               str_detect(".*[rR](o|ö)t"),
  35.                             yes = 1,
  36.                             no = umfrage$farbe_num)
  37.  
  38. ## Rekodieren: Wenn der RE "[gG]rün" die Ausgangsvariable matched, so wird der Zielvariable der Wert 2 (Grün) zugewiesen
  39. umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
  40.                             str_detect("[gG]rün"),
  41.                           yes = 2,
  42.                           no = umfrage$farbe_num)                                      
  43.  
  44. ## Rekoderen: Wenn der RE "[bB]l(a|ä)u" die Ausgangsvariable matched, so wird der Zielvariable der Wert 3 (Blau) zugewiesen
  45. umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
  46.                             str_detect("[bB]l(a|ä)u"),
  47.                           yes = 3,
  48.                           no = umfrage$farbe_num)
  49.  
  50. ## Rekodieren: Wenn die Ausgangsvariable, die im folgenden  definierten Farbbezeichnungen (andere_farben) enthält, so wird der Zielvariable der Wert "Andere Farbe" zugewiesen.
  51. andere_farben = str_c("[oO]range",
  52.                       "[gG]elb",
  53.                       "[iI]ndigo",
  54.                       "[vV]iolett",
  55.                       "[lL]ila",
  56.                       "[pP]ink",
  57.                       "[wW]ei(ß|ss)",
  58.                       "[sS]chw(a|ä)rz",
  59.                       "[bB]r(a|ä)un",
  60.                       "[bB]eige",
  61.                       "[bB]esch",
  62.                       "[oO]cker",
  63.                       "[sS]ilber",
  64.                       sep = "|")
  65. umfrage$farbe_num <- ifelse(test = umfrage$farbe %>%
  66.                               str_detect(andere_farben),
  67.                             yes = 4,
  68.                             no = umfrage$farbe_num)
  69.  
  70. ## Rekodieren: Variablen- und Werte beschriften
  71. ### Ausgangsvariable (nur Variablenbeschriftung hinzufügen)
  72. expss::var_lab(umfrage$farbe) <- "Lieblingsfarbe (unveränderte Antworten)"
  73. ## Zielvariable (sowohl eine Variablenbeschriftung als auch Wertebeschriftungen hinzufügen)
  74. umfrage <- expss::apply_labels(data = umfrage,
  75.                                farbe_num = "Lieblingsfarbe (kategorisiert)",
  76.                                farbe_num = c("Rot" = 1,
  77.                                              "Grün" = 2,
  78.                                              "Blau" = 3,
  79.                                              "Andere Farbe" = 4))
  80. ## Rekodieren: Umwandlung der Zielvariable. IST: Numerisch. SOLL: Faktor (kategorial).
  81. ## eigentliche Umwandlung
  82. umfrage$farbe_fac <- as.factor(umfrage$farbe_num)
  83. ## Bei Umwandlung verloren gegangene Variablenbeschriftung "wieder" anbringen
  84. expss::var_lab(umfrage$farbe_fac) <- "Lieblingsfarbe (kategorisiert)"
  85.  
  86. #' ------------------------
  87. #' ------------------------
  88.  
  89.  
  90. # 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)
  91. umfrage %>%
  92.   dplyr::as_tibble() %>%
  93.   select(name, farbe, farbe_fac)
  94.  
  95. # Nachkontrolle der Rekodierung (2): Kreuztabelle ausgeben lassen. Zeilenvariable ist die Ausgangsvariable der Rekodierung(farbe). Spaltenvariable ist die Zielvariable der Rekodierung (farbe_fac)                        
  96. summarytools::ctable(x = umfrage$farbe,
  97.        y = umfrage$farbe_fac) %>%
  98.   summarytools::view() # HTML-Ausgabe, Zeile entfernen für Ausgabe auf R-Konsole
  99.  
  100. #' ------------------------
  101. #' ------------------------
  102.  
  103. # Häufigkeitstabelle der Farb-Kategorien
  104. umfrage$farbe_fac %>%
  105.   summarytools::freq() %>%
  106.   summarytools::view() # HTML-Ausgabe, Zeile entfernen für Ausgabe auf R-Konsole
  107.  
  108.  
  109.  
  110.  
  111.                            

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN