Evaluation - Journey through R, A motivating workshop

Author

Julius Fenn

Paket 'rootSolve' erfolgreich ausgepackt und MD5 Summen abgeglichen
Paket 'lmom' erfolgreich ausgepackt und MD5 Summen abgeglichen
Paket 'expm' erfolgreich ausgepackt und MD5 Summen abgeglichen
Paket 'Exact' erfolgreich ausgepackt und MD5 Summen abgeglichen
Paket 'gld' erfolgreich ausgepackt und MD5 Summen abgeglichen
Paket 'DescTools' erfolgreich ausgepackt und MD5 Summen abgeglichen

Die heruntergeladenen Binärpakete sind in 
    C:\Users\fenn\AppData\Local\Temp\RtmpSwJ9If\downloaded_packages

prepare data

set up data.frame

### create counter variable
dat$ID <- NA
tmp_IDcounter <- 0
for(i in 1:nrow(dat)){
  if(!is.na(dat$meta.devicePixelRatio[i])){
    tmp_IDcounter = tmp_IDcounter + 1
  }
  dat$ID[i] <- tmp_IDcounter
}


### remove variables not necessary, keep only complete data sets
dat <- dat[, str_subset(string = colnames(dat), pattern = "^\\.\\.", negate = TRUE)]
sum(table(dat$ID) != max(table(dat$ID)))
[1] 0
sum(table(dat$ID) == max(table(dat$ID)))
[1] 5
dat <- dat[dat$ID %in% names(table(dat$ID))[table(dat$ID) == max(table(dat$ID))],]


### json (from JATOS) to 2D data.frame
# paradata
tmp_notNumeric <- str_subset(string = colnames(dat), pattern = "^meta|^R")
tmp_notNumeric <- str_subset(string = tmp_notNumeric, pattern = "labjs|location", negate = TRUE)

tmp_numeric <- str_subset(string = colnames(dat), pattern = "^lecturer|^workshop")


vec_ques <- c(tmp_notNumeric,
                tmp_numeric,
                "text_feedback")

vec_notNumeric = c(tmp_notNumeric,
                   "text_feedback")

questionnaire <- questionnairetype(dataset = dat, 
                                        listvars = vec_ques, 
                                        notNumeric = vec_notNumeric, verbose = FALSE)

vec_labels <- c("strongly disagree", "disagree", "neutral", "agree", "strongly agree")

questionnaire$`lecturer-technical` <- vec_labels[questionnaire$`lecturer-technical`]
questionnaire$`lecturer-technical` <- factor(questionnaire$`lecturer-technical`, levels = vec_labels)

questionnaire$`lecturer-complex` <- vec_labels[questionnaire$`lecturer-complex`]
questionnaire$`lecturer-complex` <- factor(questionnaire$`lecturer-complex`, levels = vec_labels)

questionnaire$`lecturer-prepared` <- vec_labels[questionnaire$`lecturer-prepared`]
questionnaire$`lecturer-prepared` <- factor(questionnaire$`lecturer-prepared`, levels = vec_labels)

questionnaire$`workshop-coverage` <- vec_labels[questionnaire$`workshop-coverage`]
questionnaire$`workshop-coverage` <- factor(questionnaire$`workshop-coverage`, levels = vec_labels)

questionnaire$`workshop-academiclife` <- vec_labels[questionnaire$`workshop-academiclife`]
questionnaire$`workshop-academiclife` <- factor(questionnaire$`workshop-academiclife`, levels = vec_labels)

questionnaire$`workshop-technical` <- vec_labels[questionnaire$`workshop-technical`]
questionnaire$`workshop-technical` <- factor(questionnaire$`workshop-technical`, levels = vec_labels)


vec_labels <- c("poor", "average", "good", "very good", "excellent")
questionnaire$`lecturer_overall-rating` <- vec_labels[questionnaire$`lecturer_overall-rating`]
questionnaire$`lecturer_overall-rating` <- factor(questionnaire$`lecturer_overall-rating`, levels = vec_labels)

questionnaire$`workshop_overall-rating` <- vec_labels[questionnaire$`workshop_overall-rating`]
questionnaire$`workshop_overall-rating` <- factor(questionnaire$`workshop_overall-rating`, levels = vec_labels)

show evaluation

Assessment of the lecturer

# Question:  The lecturer handled the technical equipment without problems. 
# > ranging from [1-5], "strongly disagree" to "strongly agree"
barplot(table(questionnaire$`lecturer-technical`))

# Question: The lecturer explained even complex topics in a comprehensible way.
barplot(table(questionnaire$`lecturer-complex`))

# Question: The lecturer was well prepared.
barplot(table(questionnaire$`lecturer-complex`))

# Question:  The lecturer was well prepared. 
barplot(table(questionnaire$`lecturer-prepared`))

## overall rating
# Question: Please grade the lecturer for this workshop.
barplot(table(questionnaire$`lecturer_overall-rating`))

Assessment of the workshop

# Question:   The degree of content coverage of the topic was appropriate. 
# > ranging from [1-5], "strongly disagree" to "strongly agree"
barplot(table(questionnaire$`workshop-coverage`))

# Question:  The workshop optimally prepares me for my academic life. 
barplot(table(questionnaire$`workshop-academiclife`))

# Question:  The workshop focuses on the current professional discussions. 
barplot(table(questionnaire$`workshop-technical`))

## overall rating
# Question: Please grade the lecturer for this workshop.
barplot(table(questionnaire$`workshop_overall-rating`))

Relation overall assessments

# Create contingency table
tbl <- table(questionnaire$`lecturer_overall-rating`, questionnaire$`workshop_overall-rating`)

# Remove empty rows and columns
tbl_clean <- tbl[rowSums(tbl) > 0, colSums(tbl) > 0]

# Show table with margins
# Add margins (totals) to the table
tbl_margins <- addmargins(tbl_clean)

# Print the table nicely
cat("Contingency Table with Variable Names:\n")
Contingency Table with Variable Names:
kable(tbl_margins, format = "simple")
average good very good excellent Sum
average 1 0 0 0 1
good 0 1 0 0 1
very good 0 0 1 0 1
excellent 0 0 1 1 2
Sum 1 1 2 1 5
# Perform Chi-square test (simulated due to small sample)
chi_result <- chisq.test(tbl_clean, simulate.p.value = FALSE)
Warning in chisq.test(tbl_clean, simulate.p.value = FALSE):
Chi-Quadrat-Approximation kann inkorrekt sein
cat("\nChi-square Test Result:\n")

Chi-square Test Result:
print(chi_result)

    Pearson's Chi-squared test

data:  tbl_clean
X-squared = 11.25, df = 9, p-value = 0.259
# Compute Cramér's V
cramers_v <- CramerV(tbl_clean)
cat("\nCramér's V:\n")

Cramér's V:
print(round(cramers_v, 3))
[1] 0.866

Textual feedback

Any feedback or critic?

Any critique or suggestions for improvement will help me a lot to make future workshops better. Positive criticism (if you have any) is also very welcome and will help to promote the workshop in the future.

# Question: Do you have any feedback or critique regarding the workshop? 
DT::datatable(questionnaire[, c("ID","lecturer_overall-rating", "workshop_overall-rating", "text_feedback")], options = list(pageLength = 5))