# LehrPuls: Kennzahlen über die Lese-Schnittstelle (Handbuch Abschnitt 10.9) # # Voraussetzungen: Schnittstelle in LehrPuls eingeschaltet, Schlüssel als # Umgebungsvariable LEHRPULS_SCHLUESSEL gesetzt (nie ins Skript schreiben), # Pakete httr und jsonlite. library(httr) library(jsonlite) basis <- Sys.getenv("LEHRPULS_ADRESSE", "http://127.0.0.1:8716/api/v1") schluessel <- Sys.getenv("LEHRPULS_SCHLUESSEL") holen <- function(tabelle, ...) { antwort <- GET(paste0(basis, "/", tabelle), query = list(...), add_headers(Authorization = paste("Bearer", schluessel))) stop_for_status(antwort) fromJSON(content(antwort, as = "text", encoding = "UTF-8")) } # Fragengüte: schwach trennende Fragen mit genügend Antworten fragen <- holen("fragen-kennzahlen") schwach <- subset(fragen, antworten >= 10 & !is.na(trennschaerfe) & trennschaerfe < 0.2) print(schwach[order(schwach$trennschaerfe), c("frage_titel", "thema", "antworten", "schwierigkeit_p", "trennschaerfe")]) # Themen mit Reifegrad und Abdeckung themen <- holen("themen") print(themen[themen$antworten > 0, c("thema", "antworten", "reifegrad_pct", "abdeckung_pct")]) # Bilanz: mittlere Quote je Session bilanz <- holen("bilanz") print(aggregate(quote_pct ~ session_id + session_start_utc, data = bilanz, FUN = mean))