Show the code
+# Datenbereinigung
+library(tidyverse)
+library(janitor)
+<- readr::read_rds(here::here("data", "processed", "survey_with_labels.rds")) survey_raw
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b6a065 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.Rproj.user +.Rhistory +.RData +.Ruserdata diff --git a/00-exploration.html b/00-exploration.html new file mode 100644 index 0000000..1719bf1 --- /dev/null +++ b/00-exploration.html @@ -0,0 +1,569 @@ + +
+ + + + + + + +# Datenbereinigung
+library(tidyverse)
+library(janitor)
+<- readr::read_rds(here::here("data", "processed", "survey_with_labels.rds")) survey_raw
<- survey_raw %>%
+ survey mutate(
+ # G1Q06_SQ001 = ehrenamtlich engagiert fix missings
+ G1Q06_SQ001 = case_when(is.na(G1Q06_SQ001) & G1Q04 == "Keine" ~ "Ja",
+ TRUE ~ as.character(G1Q06_SQ001)
+
+ ),# G1Q06_SQ002 = hauptamtlich engagiert fix missings
+ G1Q06_SQ002 = case_when(is.na(G1Q06_SQ002) & G1Q04 == "Keine" ~ "Nicht gewählt",
+ TRUE ~ as.character(G1Q06_SQ002)
+
+ ),G1Q06_SQ001 = as_factor(G1Q06_SQ001),
+ G1Q06_SQ002 = as_factor(G1Q06_SQ002),
+ # generate one variable that combines the multiple choice information about the role of the respondent
+ role_respondent = case_when(
+ # decision: Teilnehmende die beide Rollen angegeben haben werden zu hauptamtlich gezählt (es sind nur 6 und eine binary Variable ist besser geeignet für Gruppenvergleiche)
+ == "Ja" & G1Q06_SQ002 == "Ja" ~ "ehrenamtlich",
+ G1Q06_SQ001 == "Ja" ~ "ehrenamtlich",
+ G1Q06_SQ001 == "Ja" ~ "hauptamlich",
+ G1Q06_SQ002 # decision: Teilnehmende die keine der Kategorien angegeben haben werden zu NA anstatt eine vierte Kategorie "keine" einzuführen, da das wahrcheinlich nicht von Interesse ist.
+ == "Nicht gewählt" & G1Q06_SQ002 == "Nicht gewählt" ~ NA_character_,
+ G1Q06_SQ001 is.na(G1Q06_SQ001) & is.na(G1Q06_SQ002) ~ NA_character_,
+ TRUE ~ "error")
+ )
Wir sind daran interessiert zu wissen, ob die Teilnehmenden selbst ehrenamtlich, hauptamtlich oder in beiden Positionen arbeiten. Diese Information findet sich in der Frage G1Q06
: “Welche Rolle(n) haben sie in der Organisation. Die Filterführung des Fragebogens hat allerdings dazu geführt, dass Personen die angegeben haben, dass in ihrer Organisation keine hauptamtlichen Mitarbeiten vorhanden, sind die G1Q06
Frage nicht bekommen haben, da schon klar ist, dass sie dann ehrenamtlich sind. Dadurch haben sie momentan Missings auf den Variablen die zur G1Q06
Frage gehören. Die logische Verbindung zwischen G1Q04
und G1Q06
wollen wir also im Nachhinein recoden.
%>% tabyl(G1Q04, G1Q06_SQ001) survey_raw
G1Q04 Ja Nicht gewählt NA_
+ Keine 0 0 36
+ < 5 10 22 0
+ 5-10 9 16 0
+ 11-50 2 29 0
+ > 50 5 21 0
+ <NA> 0 8 26
+#TODO wurde der Filter auch für G1Q05 gesetzt? Sieht nicht so aus ()
+%>% tabyl(G1Q05, G1Q06_SQ002) survey_raw
G1Q05 Ja Nicht gewählt NA_
+ Keine 7 0 1
+ < 5 9 0 5
+ 5 - 10 10 8 15
+ 11 - 50 26 4 10
+ > 50 41 8 5
+ <NA> 1 8 26
+36 Personen haben angegeben, dass sich keine Hauptamtlichen in der Org. befinden -> die wollen wir recodieren
+%>% tabyl(G1Q06_SQ001, G1Q06_SQ002) survey
G1Q06_SQ001 Ja Nicht gewählt NA_
+ Ja 6 56 0
+ Nicht gewählt 88 8 0
+ <NA> 0 0 26
+::expect_equal(survey %>% filter(role_respondent == "error") %>% nrow(), 0) testthat
# TODO: Analyse der Missings (wie weit sind Fragebögen ausgefuellt? schmeißen wir sie alle weg?)
%>% count(role_respondent) survey
role_respondent n
+1 ehrenamtlich 62
+2 hauptamlich 88
+3 <NA> 34
+# facet wrap plot: beide Fragen haben die gleiche Skala
+<- survey %>%
+ tmp_long select(id, G1Q05, G1Q04) %>%
+ pivot_longer(-id, names_to = "var", values_to = "value")
+
+%>%
+ tmp_long ggplot(aes(x = value)) +
+ geom_bar()+
+ facet_wrap(~var)+
+ labs(caption = "G1Q04 Anzahl Hauptamtlicher\nG1Q05 Anzahl Ehrenamtlicher",
+ title = "Anzahl Hauptamtlicher (G1Q04) \n und Anzahl Ehrenamtlicher (G1Q05)")+
+ coord_flip()
<- function(data, x_var, y_var) {
+ create_dot_plot <- data %>%
+ tmp count({{ x_var }}, {{ y_var }}) %>%
+ drop_na({{ x_var }}, {{ y_var }})
+
+ <- which(attributes(survey)$names == enexpr(x_var))
+ x_var_pos <- attributes(survey)$variable.labels[x_var_pos] %>%
+ x_var_lab str_replace(pattern = "\\?.+$", replacement = "?")
+
+<- which(attributes(survey)$names == enexpr(y_var))
+ y_var_pos <- attributes(survey)$variable.labels[y_var_pos] %>%
+ y_var_lab str_replace(pattern = "\\?.+$", replacement = "?")
+
+ # plot
+ ggplot(tmp) +
+ aes(x = {{ x_var }},
+ y = {{ y_var }},
+ size = n,
+ label = n) +
+ geom_point() +
+ labs(caption = glue::glue("{enexpr(x_var)}: {x_var_lab} \n {enexpr(y_var)}: {y_var_lab}")) +
+ scale_fill_viridis_c() +
+ theme_minimal()
+
+ }
+create_dot_plot(survey, G1Q04, G1Q05)
Gibt es signifikante Zusammenhänge zwischen - G1Q04 Anzahl Hauptamtlicher - G1Q05 Anzahl Ehrenamtlicher - G5Q04 Bereich (Sport/ Bidung etc) Und allen anderen Fragen.
+<- survey_raw %>%
+ tmp count(G1Q05, G1Q04) %>%
+ drop_na(G1Q05, G1Q04)
+
+ggplot(tmp) +
+aes(x = G1Q05, y = G1Q04, fill = n) +
+ geom_tile(size = 1.2) +
+ labs(y = "Anzahl Hauptamtlicher", x = "Anzahl Ehrenamtlicher") +
+scale_fill_viridis_c()+
+ theme_minimal()
ggplot(tmp) +
+aes(x = G1Q05, y = G1Q04, size = n) +
+ geom_point() +
+ labs(y = "Anzahl Hauptamtlicher", x = "Anzahl Ehrenamtlicher") +
+scale_fill_viridis_c()+
+ theme_minimal()
<- survey_raw %>%
+ p count(G4Q02, G1Q04) %>%
+ drop_na() %>%
+ ggplot() +
+ aes(x = G4Q02, y = G1Q04, size = n) +
+ geom_point() +
+ labs(y = "Anzahl Hauptamtlicher", x = "Nutzung") +
+ coord_flip()+
+ theme_light()
+ p
%>%
+ survey_raw select(G4Q02, G1Q04) %>%
+ drop_na() %>%
+ ::tabyl(G4Q02, G1Q04) %>%
+ janitor::adorn_totals() %>%
+ janitor::adorn_percentages() %>%
+ janitor::adorn_pct_formatting() janitor
G4Q02 Keine < 5 5-10 11-50
+ nutzen wir in unserer Organisation aktuell 40.5% 21.4% 11.9% 11.9%
+ haben wir mal genutzt oder ausprobiert 25.0% 18.8% 18.8% 31.2%
+ nutzen wir nicht in unserer Organisation 15.8% 28.9% 21.1% 18.4%
+ ich weiß nicht ob wir sie nutzen oder genutzt haben 6.2% 18.8% 6.2% 37.5%
+ ich kenne den Begriff nicht 0.0% 33.3% 33.3% 33.3%
+ Total 24.3% 23.5% 15.7% 20.9%
+ > 50
+ 14.3%
+ 6.2%
+ 15.8%
+ 31.2%
+ 0.0%
+ 15.7%
+Erklärungsansaetze für Ergebnisse: - Sampling Bias in der Umfrage -
+%>%
+ survey_raw count(G4Q02) %>%
+ drop_na() %>%
+ ggplot(aes(x = G4Q02, y = n))+
+ geom_col()+
+ coord_flip()
%>%
+ survey_raw count(G4Q02, G1Q05) %>%
+ drop_na() %>%
+ ggplot() +
+ aes(x = G4Q02, y = G1Q05, size = n) +
+ geom_point() +
+ labs(y = "Anzahl Ehrenamtlicher", x = "Nutzung") +
+ coord_flip()+
+ theme_minimal()
%>%
+ survey_raw select(G4Q02, G1Q05) %>%
+ drop_na() %>%
+ ::tabyl(G4Q02, G1Q05) %>%
+ janitor::adorn_totals() %>%
+ janitor::adorn_percentages(denominator = "col") %>%
+ janitor::adorn_pct_formatting() janitor
G4Q02 Keine < 5 5 - 10
+ nutzen wir in unserer Organisation aktuell 33.3% 45.5% 37.0%
+ haben wir mal genutzt oder ausprobiert 0.0% 0.0% 11.1%
+ nutzen wir nicht in unserer Organisation 50.0% 36.4% 44.4%
+ ich weiß nicht ob wir sie nutzen oder genutzt haben 16.7% 18.2% 7.4%
+ ich kenne den Begriff nicht 0.0% 0.0% 0.0%
+ Total 100.0% 100.0% 100.0%
+ 11 - 50 > 50
+ 40.7% 30.2%
+ 22.2% 16.3%
+ 25.9% 27.9%
+ 7.4% 20.9%
+ 3.7% 4.7%
+ 100.0% 100.0%
+Chi-Square Test, um zu sehen, ob zw. den zwei kategorialen Variablen ein signifikanter Zusammenhang besteht:
+chisq.test(survey$G4Q02, survey$G1Q05)
Warning in stats::chisq.test(x, y, ...): Chi-squared approximation may be
+incorrect
+
+ Pearson's Chi-squared test
+
+data: survey$G4Q02 and survey$G1Q05
+X-squared = 12.462, df = 16, p-value = 0.7116
+Werden Cluster sichtbar?
+G2Q02 Wer kümmert sich um eure digitale Infrastruktur G1Q04 Wie viele hauptamtlich Mitarbeitende hat deine Organisation? In Korrelation zu Bisherige Erfahrung mit Open Source (G4Q02) oder der Wichtigkeit bestimmter Eigenschaften des Tools (G03Q03 und G03Q03b)
+library(tidyverse)
+# install.packages("here)
<- readr::read_rds(here::here("data", "processed", "survey_with_labels.rds")) data
<- data %>% transpose() data_ojs
ojs_define(data = data_ojs)
+ojs_define(varnames = names(data))
+ojs_define(qlabels = attributes(data)$variable.labels)
= Inputs.select(varnames,
+ viewof varname_selected label: "Filter nach:"}
+ { )
= Inputs.select(varnames,
+ viewof filter_val label: "Filter nach:"}
+ { )
= Inputs.table(
+ viewof tableData ,
+ data
+ {sort: varname_selected, required: false
+
+ } )
" de-informal - SL surveyls_welcometext "
Vielen Dank für deine Teilnahme an unserer Umfrage zu Digitaler Zusammenarbeit im Ehrenamts- und Engagement Sektor. Die Studie wird durchgeführt von dem Verein Local-IT e.V. und gefördert von der Deutschen Stiftung für Ehrenamt und Engagement.
Nach zwei Jahren Covid-bedingter, erzwungener Erkundung der digitalen Möglichkeiten der Zusammenarbeit, wollen wir resümieren: Was konnten Vereine oder ehrenamtlich Engagierte mitnehmen aus dieser Zeit? Welche digitale Tools werden auch weiter genutzt? Was klappt gut, was könnte besser oder anders gelöst werden?
Die Umfrage wird ca. 10 bis 15 Minuten dauern.
Datenschutzhinweise:
Wir, Local-IT e.V., sind die für die Durchführung dieser Studie verantwortliche Stelle. Wir werden die Informationen, die du uns zur Verfügung stellst, nur zu Forschungszwecken verwenden.
Deine Teilnahme ist freiwillig und du kannst die Teilnahme jederzeit beenden. Diese Daten werden anonym erfasst. Die Ergebnisse der Studie werden, wenn überhaupt, nur in zusammengefasster Form an Dritte übermittelt. Wir raten dir davon ab, personenbezogene Daten (wie Name, E-Mail-Adresse oder Telefonnummer) im Kommentarfeld zu hinterlassen.
" de-informal - SL surveyls_endtext "
Vielen Dank für deine Teilnahme!
" de-informal - SL surveyls_policy_notice de-informal - SL surveyls_policy_notice_label de-informal - SL surveyls_url de-informal - SL surveyls_urldescription de-informal - SL surveyls_email_invite_subj "Einladung zur einer Umfrage" de-informal - SL surveyls_email_invite "Hallo {FIRSTNAME},