KnitR

Aus Wikiversity

KnitR ist ein Paket für das RStudio, das die Erstellung von Textverarbeitungsdokumenten, PDF, Präsentationen,... mit Echtzeit-Einbettung von Daten ermöglicht. So können z.B. aktuelle Börsenkurse abgerufen, innerhalb von R analysiert und abhängig von der Analyse Phrasen und Ergebnisse z.B. in den Text implementiert werden. Das Paket KnitR wird oft innerhalb RStudio als grafische Benutzeroberfläche zum Aufruf von Befehlen und Skripten für die zugrundeliegende Statistik-Software R verwendet (siehe KnitR für Details).

Von der Befehlszeile aus können durch die Verarbeitung eines R-Markdown-Dokuments automatisch aktuelle Berichte generiert und in in der laufenden Bearbeitung die aktuellen Datenquellen (z.B. Überwachungsdaten) in der statistischen oder numerischen Analyse ausgewertet werden.

Wenn die Lernenden den R-Code im Lerndokument einsehen können, können sie in der Statistiksoftware selbstständig aktiv werden. Darüber hinaus können Leser für die Veröffentlichung von Forschungsinhalten in Wikiversity[1]

  • die Ergebnisse reproduzieren,
  • von der Methodik lernen,
  • den R-Code auf ihre eigenen Daten anwenden,
  • prüfen, ob die Algorithmen für den Versuchsplan geeignet sind.


Aufgabe für die Lernenden[Bearbeiten]

  • Installieren Sie RStudio und das Paket KnitR, erstellen und bearbeiten Sie Ihr erstes KnitR-Dokument.
  • Erkunden Sie das Konzept des Scientific Hackathon und erklären Sie, warum KnitR als Entwicklungsumgebung für entscheidungsunterstützende Produkte verwendet werden kann!
  • Analysieren Sie den COVID-19 Ausbruch und die Anforderungen an dynamische Aktualisierungen im Jahr 2020. Was sind die Anforderungen und Einschränkungen zur Schaffung eines dynamischen Berichtsmechanismus auf der Grundlage von KnitR und R für die COVID-19-Epidemien?

Lernmodule[Bearbeiten]

Kompilierung einer knitR-Quelldatei[Bearbeiten]

Eine knitR-Datei kann in die angegebenen Ausgabeformate kompiliert werden, indem Sie rmarkdown::render(<FILENAME>) über die R-Konsole ausführen.

Einige externe KnitR Tutorials[Bearbeiten]

Wiki zu Abschriftenkonvertierung mit PanDoc[Bearbeiten]

Das OpenSource-Tool PanDoc wird als das "Schweizer Taschenmesser" der Dokumentenkonvertierung bezeichnet. Nehmen wir an, wir haben ein KnitR-Dokument einer wissenschaftlichen Arbeit, das die KnitR-Codeschnipsel zur Verarbeitung der analysierten Daten enthält.

  • Konvertieren Sie das Markdown-Dokument der Arbeit mit PanDoc-Online Converter in ein MediaWiki-Dokument.
    • Erstellen Sie ein Beispieldokument mit dem Knitr-Paket in RStudio und speichern Sie die R-Markdown-Datei mit der Erweiterung Rmd auf Ihrer Festplatte.
    • Kopieren Sie den Inhalt Ihres R-Markdown-Dokuments nach PanDoc-Online Converter,
    • wählen Sie Markdown (pandoc) als Eingabeformat,
    • wählen Sie MediaWiki als Ausgabeformat,
    • drücken Sie den Konvertierungs-Knopf und analysieren Sie die generierte MediaWiki-Syntax des Textes.
  • Die R-Code-Chunks für die Analyse der Daten (z.B. aus der CSV-Datei eines Tabellenkalkulationsdokuments geladen) werden in eine <code>--Umgebung konvertiert.
  • Dieses konvertierte KnitR-Dokument wird zusammen mit den wissenschaftlichen Arbeiten im WikiJournal (z.B. WikiJournal of Medicine) gespeichert. Wurde die Datenabfrage auf die gleiche Weise durchgeführt, wird die Anwendung des KnitR-Dokuments mit den neuen Daten auf die gleiche algorithmische Weise durchgeführt. Dieser KnitR-Ansatz trägt zu einem Workflow für eine reproduzierbare Wissenschaft bei.

Workflow für KnitR-Backend in Verbindung mit Wikiversity/Wikipedia[Bearbeiten]

Der folgende Arbeitsablauf ist in Wikiversity derzeit nicht implementiert. Mit dieser Wiki-Ressource lernen Sie die Workflow-Analogie zwischen KnitR und den zukünftigen Vorteilen einer KnitR-ähnlichen Implementierung für die wissenschaftliche Veröffentlichung von dynamisch generierten Lernressourcen in Wikiversity kennen:

==My Section==
this is text in wikiversity. Now we calculate the covariance of two vectors x and y dynamically. The covariance is 
<dyncalc language="R" src="https://r-backend.example.com">
   x <- rnorm(100)
   y <- 3*x + rnorm(100)
   cor(x, y) 
</dyncal>
Now we create a scatter plot of the data 
<dyncalc language="R" src="https://r-backend.example.com">
   {r scatterplot, fig.width=8, fig.height=6}
   plot(x,y)
</dyncal>
Now we create the text output depending on the analysis of the data.
<dyncalc language="R" src="https://r-backend.example.com">
  if (cor(x, y) > 0) {
    print("The covariance of x and y is a positive number.")
  }
</dyncal>

Nach der Verarbeitung des Wikiversity-Dokuments mit der Angabe des src-Attributs im R-Backend könnte das Ergebnis sein:

==My Section==
this is text in wikiversity. Now we calculate the covariance of two vectors x and y dynamically. The covariance is 0.93612
Now we create a scatter plot of the data 
[[File:Scatterplot9923400384204.png]]
Now we create the text output depending on the analysis of the data.
The covariance of x and y is a positive number.

Die empfohlene Umgebung für dynamische Berechnungen wird in einer Tag-Umgebung platziert, genau wie der Mathe-Tag für mathematische Ausdrücke.

  • Der eingekapselte Inhalt im math-Tag wird für die Ausgabe gerendert.
  • Der eingekapselte Inhalt im dyncal-Tag wird zur Berechnung oder zur Erstellung eines Streudiagramms an ein Backend übergeben.

Der eingekapselte Code ist der echte R-Code, der in R oder RStudio funktioniert. Der Arbeitsablauf für R/KnitR kann im R-Tutorial von K. Broman[2] gefunden werden. Der R-Code erzeugt Vektoren mit Zufallszahlen und berechnet die Kovarianz. Der R-Code sollte für Wikiversity-Seiten nach einer Codeänderung standardmäßig verarbeitet werden (Serverlast für das R-Backend). Als weitere Option kann der Lernende die Quelle über eine API downloaden und das KnitR offline auf dem mobilen Gerät erstellen. Die Wikiversity-Community wird entscheiden, ob dies eine mögliche Option ist, die in eine Lernumgebung aufgenommen werden kann, um die Analyse von Daten und deren Interpretation zu untersuchen.

  • Die Dokumentsprache wird das Standard Wiki Markup sein, auch bekannt als Wikitext oder Wikicode. Er besteht aus der Syntax und den Schlüsselwörtern, die von der MediaWiki-Software zur Formatierung einer Seite verwendet werden (z.B. verwendet in Wikipedia, Wikiversity, OLAT,...).
  • R-Code-Blöcke werden von einem R-Backend erkannt und interpretiert oder ein Verweis auf ein versioniertes R-Skript wurde in ein Wiki-Dokument/einen Wiki-Artikel eingefügt, und jeder gefundene Verweis führt zu einem Lesen-Update des Wiki-Artikels, wenn Daten, Skript oder Dokument aktualisiert werden. Diagramme sind z.B. immer noch PNG-Dateien in Wikimedia, die auf eine Art und Weise importiert werden, die den meisten Autoren der Wiki-Community bekannt ist. Der Unterschied zwischen einem Standard-Wiki-Dokument und einem Wiki-Dokument mit R-Code-Bausteinen besteht darin, dass bei jeder Aktualisierung von Daten oder Aktualisierung des Skripts das R-Skript erneut aufgerufen wird und eine neue Version der Ausgabe (Diagramme als PNG-Dateien, Anzahl, dynamische Textelemente) erstellt wird. Dieses Konzept wird im Wesentlichen für mathematische Formeln in MediaWiki von TexVC[3] bzw. die Math Extension for MediaWiki[4] ebenfalls. Die LaTeX Quellen werden analysiert und in Bilder, MathML, umgewandelt, die in einem Browser angezeigt werden können.
  • SageMath ist ein weiterer potenzieller Kandidat als Backend, der die numerische und statistische Analyse "on the fly" in einer Lernressource durchführt. Die Vorteile sind enorm, insbesondere wenn auch Lernende und Autoren beteiligt sind, da eine Lernaufgabe in SageMath vom Lernenden selbst durchgeführt werden kann und die Diagramme und Karten für die jüngsten Ereignisse im Dokument sichtbar sind, ohne dass die Diagramme/statistischen Ergebnisse immer wieder mit den neuesten Daten aktualisiert werden müssen. Das verfügbare Software-Paket innerhalb von SageMath ist riesig und R ist ein Paket in der SageMath-Paketliste.
  • PanDoc könnte verwendet werden, um Wiki-Code in Markdown für die Verarbeitung mit dem KnitR-Paket zu konvertieren.

Aufgaben[Bearbeiten]

Im vorherigen Abschnitt wurde der Arbeitsablauf eines integrierten Ansatzes von KnitR ausgearbeitet. Da dieses Konzept noch nicht als Erweiterung im MediaWiki implementiert ist, kann der Workflow nicht direkt mit Code Chunk für mathematische Berechnungen im MediaWiki der Wikiversity durchgeführt werden. Es ist aber möglich, den Workflow im Allgemeinen kennen zu lernen:

Siehe auch[Bearbeiten]

Referenzen[Bearbeiten]

  1. WikiJournal of Medicine - Eine Open-Access-Zeitschrift ohne Publikationskosten - Über ISSN: 2002-4436 www.WikiJMed.org Häufigkeit: Fortlaufend seit: März 2014 Herausgeber: Wikimedia Foundation
  2. Karl Broman, KnitR in a Nutshell - (Zugriff am 14.08.2007) - http://kbroman.org/knitr_knutshell/pages/Rmarkdown.html
  3. Schubotz, M. (2013) verwendet, um Mathematik in Wikipedia durchsuchbar zu machen. arXiv preprint arXiv:1304.5475.
  4. Schubotz, M., & Wicke, G. (2014). Mathoid: Robustes, skalierbares, schnelles und zugängliches mathematisches Rendering für Wikipedia. In intelligenter Computer-Mathematik (S. 224-235). Springer, Cham.
  5. Quantum Geographic Information System (QGIS) - Open Source Software-Paket für Linux, Windows, Mac (2017) - LTR 2.18.11 Zugang 2017/08/14 - https://www.qgis.org/en/site/forusers/download.html

Skriptfehler: Ein solches Modul „Check for unknown parameters“ ist nicht vorhanden.

externe Links[Bearbeiten]

<include></include>