library(gtools) data = read.csv2("results-20200506-bereinigt.csv", dec=".") # Hilfsfunktionen draw_boxplot <- function(data, file_name, preparation, width=600, height=350, names=NA) { png( filename=paste("results/", file_name, ".png", sep=""), width=width, height=height, units="px" ) if (!missing(preparation)) { preparation() } boxplot(data, horizontal=TRUE, names=names, las=1) dev.off() } draw_barplot <- function(data, file_name, preparation, xlim, width=600, height=350, horizontal=FALSE, names.arg) { png( filename=paste("results/", file_name, ".png", sep=""), width=width, height=height, units="px" ) if (!missing(preparation)) { preparation() } if (missing(xlim)) { if (missing(names.arg)) { barplot(data, horiz=horizontal,las=1) } else { barplot(data, horiz=horizontal,las=1, names.arg=names.arg) } } else { if (missing(names.arg)) { barplot(data, horiz=horizontal,las=1, xlim=xlim) } else { barplot(data, horiz=horizontal,las=1, xlim=xlim, names.arg=names.arg) } } dev.off() } # Allgemeine Angaben ## Gesamtzahl der Teilnehmer*innen write(nrow(data), file = "results/gesamtzahl.tex", append = FALSE) ## Studiengänge studiengaenge.abs = table(data$studiengang, useNA="no", exclude=c("")) studiengaenge.rel = table(data$studiengang, exclude=c(""))/nrow(data) studiengaenge.preparation = function () par(mar=c(3,24,1,2)+.1) draw_barplot(studiengaenge.abs, "studiengaenge", preparation=studiengaenge.preparation, horiz=TRUE, names.arg = rownames(studiengaenge.abs)) ## Fachsemester fachsemester = table(data$fachsemester) preparation = function () par(mar=c(3,3,1,1)+.1) draw_barplot(fachsemester, "fachsemester", preparation) # boxplot(data$fachsemester, horizontal=TRUE) ## Unisemester unisemester = nrow(subset(data, unisemester=="Ja")) write(unisemester, file = "results/erstes_unisemester.tex", append = FALSE) ## Vollzeit vs. Teilzeit data.vz = subset(data, vollzeit=="Ja") data.tz = subset(data, vollzeit=="Nein") data.vz.table = table(data$vollzeit) draw_barplot(data.vz.table, "vollzeit-vs-teilzeit", width=600, height=250) ## ECTS # data.vz.mean_ects = mean(subset(data.vz, ects != "NA")$ects) # data.tz.mean_ects = mean(subset(data.tz, ects != "NA")$ects) preparation = function () par(mar=c(5,5,5,5)+.1) draw_boxplot(data.vz$ects, "ects-boxplot-vollzeit") draw_boxplot(data.tz$ects, "ects-boxplot-teilzeit") draw_barplot(table(data.vz$ects), "ects-barchart-vollzeit") draw_barplot(table(data.tz$ects), "ects-barchart-teilzeit") # Persönliche Belastung ## Arbeitsbelastung draw_barplot(table(data$arbeitsbelastung), "arbeitsbelastung-barchart", width=400, height=300) draw_boxplot(data$arbeitsbelastung, "arbeitsbelastung-boxplot", width=400, height=300) ## Gründe mehr_ects = nrow(subset(data, gruende.SQ001.=="Ja")) weniger_ects = nrow(subset(data, gruende.SQ005.=="Ja")) mehr_nebenberuf = nrow(subset(data, gruende.SQ002.=="Ja")) weniger_nebenberuf = nrow(subset(data, gruende.SQ006.=="Ja")) mehr_anforderungen = nrow(subset(data, gruende.SQ004.=="Ja")) weniger_anforderungen = nrow(subset(data, gruende.SQ007.=="Ja")) mehr_technik = nrow(subset(data, gruende.SQ003.=="Ja")) weniger_pendeln = nrow(subset(data, gruende.SQ008.=="Ja")) anderes = nrow(subset(data, gruende.other.!="")) gruende.werte = c(mehr_ects, mehr_nebenberuf, mehr_anforderungen, mehr_technik, weniger_ects, weniger_nebenberuf, weniger_anforderungen, weniger_pendeln, anderes) gruende.label = c( "höhere ECTS-Anzahl", "höhere Belastung im Nebenberuf", "erhöhte Anforderungen seitens der Modulverantwortlichen", "techn. Zusatzaufwand f. Teilnahme a. d. Lehrveranstaltungen", "geringere ECTS-Anzahl", "geringere Belastung im Nebenberuf", "geringere Anforderungen seitens der Modulverantwortlichen", "Pendelwege entfallen", "Sonstiges" ) gruende.tabelle = array(gruende.werte, dimnames=list(gruende.label)) gruende.preparation = function () par(mar=c(3,24,1,2)+.1) draw_barplot(gruende.werte, "arbeitsbelastung-gruende-barchart", horizontal=TRUE, gruende.preparation, names.arg=gruende.label) ## Aussagen a1 <- which(colnames(data)=="aussagen.SQ001." ) a2 <- which(colnames(data)=="aussagen.SQ008." ) aussagen = data[a1:a2] draw_boxplot(aussagen, "aussagen-boxplots", names=c( "A",# "Ich fühle mich durch das Studieren von zu Hause aus gestresst.", "B",# "Ich kann meinen Studienalltag weitestgehend flexibel gestalten.", "C",# "Ohne feste Termine fällt es mir schwer, über längere Zeiträume fokussiert zu arbeiten.", "D",# "Der fehlende Kontakt zu Kommiliton*innen senkt meine Motivation, mir Vorlesungen anzuschauen.", "E",# "Lerngruppen zu bilden ist in diesem Semester leichter als zuvor.", "F",# "Ich empfinde die Situation im Homeoffice als beengend.", "G",# "Mit meinem bisherigen Lernfortschritt seit Semesterbeginn bin ich insgesamt zufrieden.", "H" # "Meine schlechte Internetverbindung erschwert das Studieren." ) ) for (column in 1:8) { draw_boxplot(aussagen[column], paste("aussagen-boxplot-", chr(64 + column), sep=""), width=400, height=300) draw_barplot(table(aussagen[column]), paste("aussagen-barchart-", chr(64 + column), sep=""), names.arg=c(1, 2, 3, 4, 5), width=400, height=300) } # Modulangebot ## Ausfall modulausfall.betroffene = subset(data, ausfall=="Ja") write(nrow(modulausfall.betroffene), file="results/betroffene-modulwegfall.tex", append = FALSE) modulausfall.studiendauer.ja = subset(modulausfall.betroffene, studiendauer=="Ja, meine Studiendauer wird voraussichtlich länger als geplant sein.") write(nrow(modulausfall.studiendauer.ja), file="results/betroffene-studiendauer.tex", append = FALSE) modulausfall.studiendauer.nein = subset(modulausfall.betroffene, studiendauer=="Nein, das trifft auf mich nicht zu.") write(nrow(modulausfall.studiendauer.nein), file="results/betroffene-studiendauer-nein.tex", append = FALSE) modulausfall.wi = nrow(subset(modulausfall.betroffene, studiengang=="M. Sc. Wirtschaftsinformatik" | studiengang=="B. Sc. International Information Systems Management" | studiengang=="B. Sc. Wirtschaftsinformatik" | studiengang=="M. Sc. International Information Systems Management")) zoom_users = subset(data, technologien.1. == "Zoom" | technologien.2. == "Zoom" | technologien.3. == "Zoom" | technologien.4. == "Zoom" | technologien.5. == "Zoom" | technologien.6. == "Zoom" | technologien.7. == "Zoom" | technologien.8. == "Zoom" | technologien.9. == "Zoom") zoom_users.total = nrow(zoom_users) zoom_users.criteria_satisfied = nrow(subset(zoom_users, zoombesorgnis == "Ja.")) zoom_users.criteria_not_satisfied = nrow(subset(zoom_users, zoombesorgnis == "Nein.")) # barplot(studiengaenge.rel, horiz=TRUE, legend=c("B. Sc. WI", "B. Sc. AI", …)) # pie(studiengaenge.rel, horiz=TRUE, legend=c("B. Sc. WI", "B. Sc. AI", …)) # boxplot(data$ects~data$vollzeit)