Changelog
Source:NEWS.md
setanalysis 1.1.0
Überarbeitung von Dokumentation, Paketstruktur und Code. Die Ausgabe der Funktionen bleibt unverändert, sofern unten nicht ausdrücklich als Fehlerbehebung aufgeführt.
Einheitliche Funktionsnamen
- Alle Funktionen heißen jetzt einheitlich in snake_case:
table_freq(),table_stat_single(),table_stat_multi(),evasys_read_data(),input_tabelle(),label_test(),change_analysis_defaults(),bsp_boxplot(),bsp_evasys_sk6(),bsp_table_stat()sowie die Umgebunglist_open_answers. - Die bisherigen Namen funktionieren weiterhin unverändert und sind in
?setanalysis-deprecatedaufgeführt. Argumentnamen bleiben gleich.
Beispieldaten
-
BspDatenenthält jetzt vollständig fiktive, zufällig erzeugte Daten (erfundene Fachbereiche und Fächer, offene Antworten aus Lorem ipsum) statt anonymisierter Befragungsdaten. Aufbau, Spaltennamen und Attribute bleiben gleich; die leere SpaltedataLVE$ECTSentfällt. Die Daten werden mitdata-raw/BspDaten.Rreproduzierbar erzeugt. - In der Beispiel-Berichtstabelle (
inst/extdata/beispiel_berichte.xlsx) heißt der spezielle Bericht jetzt „Sonderauswertung“.
Fehlerbehebungen
- Sonderzeichen in Tabellen werden für Typst maskiert. Bisher brach das Erstellen des PDFs ab, wenn eine offene Antwort, eine Antwortoption oder ein Item-Text z. B.
//,$,#,_,*,<…>oder@…enthielt („unclosed delimiter“), und ein einzelner Backslash verschwand. Betroffen waren alle Tabellen auslv_table()sowie die Skalenbeschriftung im Tabellenkopf vonmerge_aggr_sk(). Die Kopfzeilen der Tabellen werden weiterhin nicht maskiert, damit sie Typst-Code enthalten können. -
merge_mc()zeichnet die Zeilen „NAs“ und „Total“ nicht mehr als Balken ins Diagramm; sie stehen weiterhin in der Tabelle. Dadurch wird die Abbildung beifig.height = "default"entsprechend niedriger. Die BeispieldatenBspDaten$Plots$mcwurden passend dazu bereinigt. -
merge_many()wurde neu strukturiert und bricht in folgenden Fällen nicht mehr ab:- die letzte Spalte ist eine Skalen- oder MC-Frage,
- eine einzelne Skalenfrage steht zwischen anderen Fragen (sie wird jetzt einzeln ausgewertet),
- in der globalen Umgebung existiert eine Variable
counter.
-
appendix_open()leert nach der Ausgabe den Speicher der offenen Antworten. Werden mehrere Berichte in derselben R-Sitzung erstellt (z. B. mitrmarkdown::render()in einer Schleife), enthält der Anhang eines Berichts damit nicht mehr die offenen Antworten der vorherigen Berichte. -
appendix_open()bricht nicht mehr ab, wenn eine offene Frage mitnrundinkl = TRUEgesammelt wurde (bisher: „object ‘inkl.x.y’ not found“, wenn es keine passende inkl.-Variable gab). Der Anhang übernimmt jetzt die beim Sammeln getroffene Entscheidung, statt die inkl.-Variable erneut abzufragen. -
merge_fachsem()berücksichtigt das Argumentfig.height(bisher war die Höhe der Abbildung immer 5; der Standardwert bleibt 5). -
merge_fachsem()bricht bei einer ungültigengroupjetzt mit einer verständlichen Fehlermeldung ab (bisher: „Objekt ‘caps’ nicht gefunden“). -
markdown_in_viewer()stellt die vorherigen knitr-Einstellungen nach der Vorschau wieder her (bisher wurdeknitr.duplicate.labelfest auf"forbid"gesetzt). -
label_test(): Ausnahmen werden einfacher und robuster herausgefiltert. Die Meldungen sprechen jetzt von der „Berichtstabelle“ statt vom internen Objektnamenpersonalized.info. -
input_tabelle()wertet die Bedingungen der Regeltabelle jetzt direkt mit den Spalten der Berichtstabelle aus, statt die Spaltennamen per Textersatz umzuschreiben. Bestehende Regeltabellen liefern dasselbe Ergebnis; zusätzlich funktionieren nun Bedingungen ohne Leerzeichen nach dem Spaltennamen (z. B.Art=="alles", bisher Abbruch), und Spaltennamen innerhalb von Texten (z. B.Fach == "Art und Weise") werden nicht mehr verfälscht. -
merge.open()ist wieder von außen aufrufbar. roxygen hatte die Funktion fälschlich als S3-Methode vonmerge()registriert statt sie zu exportieren.
Dokumentation
Alle Hilfeseiten wurden neu geschrieben: klare Titel und Beschreibungen, vollständig beschriebene Argumente und Rückgabewerte, Querverweise und Funktionsgruppen (Auswertung, Tabellen, Grafiken, Legenden, Datenaufbereitung, Werkzeuge).
Neue Paket-Hilfeseite
?setanalysismit dem typischen Ablauf und einer Erklärung der inkl.-Logik.Alle Beispiele laufen und legen keine Dateien mehr im Arbeitsverzeichnis an. Für
evasys_read_data()undinput_tabelle()liegen fiktive Beispieldateien ininst/extdata/.Neue Vignette „Einen Evaluationsbericht erstellen“ (
vignette("bericht-erstellen", package = "setanalysis")): Daten einlesen, Berichte über Berichts- und Regeltabelle festlegen, Bericht in Quarto schreiben, alle Berichte erstellen.README neu geschrieben, zusätzlich auf Englisch (
README.en.md), mit Vorschaubildern aus den Beispieldaten (erzeugt mitdata-raw/readme_vorschau.R).Alle veralteten Funktionsnamen (z. B.
merge.sc(),grade(),open.answers()) sind in einer gemeinsamen Hilfeseite?setanalysis-deprecatedmit ihrer jeweils aktuellen Entsprechung dokumentiert. Die altenmerge.*()-Namen undboxplot.ruecklauf()leiten Aufrufe unverändert an die aktuellen Funktionen weiter; dadurch entfallen die S3-Warnungen vonR CMD check.
Paketinfrastruktur
Weniger Abhängigkeiten: dplyr wird nicht mehr benötigt. htmltools, markdown und svglite sind nur noch optional (für die Vorschau mit
markdown_in_viewer()); fehlen sie, weist die Funktion darauf hin. Dadurch werden bei der Installation rund 30 Pakete weniger mitinstalliert.Automatisierte Tests mit testthat: Snapshot-Tests halten die Ausgabe aller Auswertungs-, Tabellen- und Grafikfunktionen fest (Typst-Text und SVG-Abbildungen), sodass unbeabsichtigte Änderungen sofort auffallen.
GitHub Actions:
R CMD checkläuft bei jedem Push auf Windows, macOS und Linux (die SVG-Abbildungen werden dort nicht verglichen, weil ihre Textmaße von den installierten Schriften abhängen). Die Website https://donvollb.github.io/setanalysis/ wird mit pkgdown erzeugt.DESCRIPTIONvervollständigt: Titel, Beschreibung, Autoren, Links zum Repository und alle verwendeten Basis-Pakete unterImports.subchunkify()legt keine Variablesub.nrmehr in der globalen Umgebung an; der Zähler für die Namen der Sub-Chunks liegt jetzt im Paket..Rbuildignoreergänzt; die interne To-do-Listenotes.txtwurde entfernt.Quellcode thematisch neu geordnet (z. B.
plots_bar.R,tables.R,settings.R); die großenmerge_*()-Funktionen behalten eigene Dateien.