if (!require(pacman)) install.packages("pacman")
::p_load(tidyverse, janitor, psych, tinytable, ggstats,
pacman
modelsummary, knitr, kableExtra, labelled)rm(list = ls())
setwd("~/Dropbox/hsf/github/ewa/ss_24/read_in_71")
<- read.delim("Dataset 71.txt")
df_raw
<- df_raw |>
df_cosmetic clean_names() |>
as_tibble() |>
mutate(across(everything(), ~ if_else(is.nan(.), NA, .))) |>
rowwise() |>
filter(!all(across(starts_with("item_"), ~ is.na(.)))) |>
ungroup()
<- df_cosmetic |>
df rowwise() |>
mutate(outlier = max(abs(c_across(starts_with("item_"))), na.rm = TRUE)) |>
mutate(has_outlier = if_else(outlier > 5 | outlier == 0, TRUE, FALSE)) |>
mutate(count_larger_5 =
sum( c_across(starts_with("item_")) > 5 |
c_across(starts_with("item_")) == 0, na.rm = TRUE)) |>
mutate(count_typos = sum(c_across(starts_with("item_")) %in%
c(11, 22, 33, 44, 55), na.rm = TRUE)) |>
mutate(has_larger_5_notypos = (count_typos < count_larger_5)) |>
mutate(has_typos = count_typos > 0 ) |>
mutate(has_nas = if_else(anyNA(pick(starts_with("item_"))), TRUE, FALSE)) |>
mutate(complete = (has_outlier == FALSE & has_nas == FALSE)) |>
ungroup()
<- c(
likert_levels "Stimme überhaupt nicht zu",
"Stimme nicht zu",
"Neutral",
"Stimme zu",
"Stimme voll und ganz zu"
)
<- df |>
df_chr mutate(across(starts_with("item_"),
~ case_when(
== 1 ~ "Stimme überhaupt nicht zu",
. == 2 ~ "Stimme nicht zu",
. == 3 ~ "Neutral",
. == 4 ~ "Stimme zu",
. == 5 ~ "Stimme voll und ganz zu",
. TRUE ~ as.character(.)
|>
))) mutate(across(starts_with("item_"), ~ factor(.x, levels = likert_levels)))
<- df_chr |>
df_complete filter(complete == TRUE)
<- df |>
df_cleaned mutate(across(starts_with("item_"), ~ case_when(
== 11 ~ 1,
. == 22 ~ 2,
. == 33 ~ 3,
. == 44 ~ 4,
. == 55 ~ 5,
. TRUE ~ .
|>
))) mutate(across(starts_with("item_"), ~ if_else(. > 5 | . == 0, NA, .))) |>
mutate(across(starts_with("item_"),
~ case_when(
== 1 ~ "Stimme überhaupt nicht zu",
. == 2 ~ "Stimme nicht zu",
. == 3 ~ "Neutral",
. == 4 ~ "Stimme zu",
. == 5 ~ "Stimme voll und ganz zu",
. TRUE ~ as.character(.)
|>
))) mutate(across(starts_with("item_"), ~ factor(.x, levels = likert_levels)))
rm(list = setdiff(ls(), c("df_complete", "df_raw", "df_cleaned", "df")))
save.image("data_71.RData")
3 Daten einlesen und aufbereiten
Dieses Dokument beschreibt exemplarisch die Datenaufbereitung der Datei ‘Dataset 71.txt’. Alle Schritte werden mit R durchgeführt. Der Code ist in die Quarto Datein eingebettet. Die Ergebniss sind vollständig replizierbar. Der verwendete Code kann wieder und anderweitig verwendet werden.
Die PDF Datei kann hier heruntergeladen werden: https://github.com/hubchev/ewa/raw/main/ss_24/read_in_71/doc_read_in_71.pdf.
Um die komplette Arbeit zu replizieren und gegebenfalls auf einen anderen Datensatz anzuwenden, kann das Repository “ewa” von meinem GitHub Account heruntergeladen werden. Alle entsprechenden Dateien befinden sich im Verzeichnis “ewa/ss_24/read_in_71”. Hier ist der Link zu dem entsprechenden Repository: https://github.com/hubchev/ewa/
Wie das alles im Detail von statten geht, wurde in der Übung behandelt.