KnitR
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]
- Den grundlegenden Arbeitsablauf von KnitR verstehen
- Installation von KnitR
- Standard-Fallen und deren Lösungen
- Hello World Beispiel
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]
- Rstudio, eine IDE zur Erstellung von KnitR-Dokumenten, enthält auch einfache Beispiele
- Karl Broman's minimal tutorial diskutiert die Grundlagen des KnitRns, ein sehr guter Einstieg
- Die knitR-Homepage enthält nicht nur die Quelle, sondern auch einige Links und Beispiele
- An introductional video auf YouTube, das die Erstellung eines KnitR-Dokuments mit RStudio veranschaulicht
- A nice short video, das Ihnen in nur fünf Minuten den Einstieg ermöglicht
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:
- Installieren Sie R-Studio und R auf Ihrem Rechner.
- Installieren Sie das KnitR-Paket in R-Studio.
- Lernen Sie KnitR mit Screencasts (Youtube) kennen und führen Sie ein grundlegendes KnitR-Tutorial durch, damit Sie den ersten dynamischen Bericht erhalten.
- Video - Learn Knitr in 5min (Youtube) von Ram Narasimhan - abgerufen am 11.10.2006
- Video - Professional Report Writing with Sweave, LaTeX, and R (Youtube) von Nicolas Yager - abgerufen am 11.10.2006
- knitr: Automatically embedding R output in documents (Youtube)' von Joshua Wiley 14.10.03
- Fortgeschrittene Lerner/Spatiale Analyse: Wenden Sie ein Szenario im Risikomanagement an Modul zur Erstellung von Risikokarten. Was sind zusätzliche Anforderungen an die räumliche Analyse?
- Lernen Sie über die Gestaltung von Geographische Informationssysteme (GIS) (Klassifikationsressource von Dave Braunschweig),
- Installieren Sie Open Source Quantum GIS[5] und erkunden Sie die 14/de/docs/training_manual/ QGIS manual und versuchen Sie, das allgemeines Element von GIS mit den Funktionen, die in QGIS manual angeboten werden, zu verbinden (erkunden Sie außerdem QGIS ScreenCasts auf Youtube je nach dem Grad der Fachkenntnis im GIS).
- Daten aus der GIS-Datenbank extrahieren und mit R-Skript verarbeiten,
- Generierte Karten und berechnete R-Ergebnisse in das KnitR-Dokument integrieren (Spatial Analysis with R Youtube veröffentlicht von Domino Data Lab 2016/02).
- (Jupyter) Analysieren Sie das Open-Source-Framework Jupyter und analysieren Sie die Unterschiede und Gemeinsamkeiten zwischen KnitR und Jupyter. In welchen Bereichen würden Sie KnitR und wann würden Sie Jupyter verwenden?
Siehe auch[Bearbeiten]
- Das R Programmier-Wikibuch
- PanDocElectron Konverter für Dokumente
- Educational Content Sink
- Reproduzierbarkeit
- Dynamische Dokumentenerzeugung
- Wiki2Reveal
- Wissenschaftlicher Hackathon
- Open Community Approach
- Open Source in der Wissenschaft
- COVID-19/Mathematische Modellierung - Anwendungsfall für die dynamische Berichterstattung während einer epidemiologischen Ausbreitung.
Referenzen[Bearbeiten]
- ↑ 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
- ↑ Karl Broman, KnitR in a Nutshell - (Zugriff am 14.08.2007) - http://kbroman.org/knitr_knutshell/pages/Rmarkdown.html
- ↑ Schubotz, M. (2013) verwendet, um Mathematik in Wikipedia durchsuchbar zu machen. arXiv preprint arXiv:1304.5475.
- ↑ 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.
- ↑ 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]
- KnitR Official website
- Repository in GitHub
- Example code in GitHub
- knitr package in CRAN
- R Statistics und R Studio als Graphical User Interface für R.
- Video - Learn Knitr in 5min (Youtube) von Ram Narasimhan - abgerufen am 11.10.2016
- Video - Professional Report Writing with Sweave, LaTeX, and R (Youtube) von Nicolas Yager - abgerufen am 11.10.2016
- knitr: Automatically embedding R output in documents von Joshua Wiley 2013/10/14
- PanDocElectron/How to create a html presentation
- Wikipedia:Pandoc zur Erstellung einer MarkDown-Eingabe für KnitR
- PanDocElectron Installation Guide für Linux Windows und Mac (Linux wird derzeit nur mit Binärdateien für Ubuntu/Mint/Debian unterstützt)
- Online Demo for Pandoc für einfache Textdokumente, um MarkDown-Eingabe für KnitR aus anderen Formaten zu erstellen
- Pandoc Official Website Unterstützung für Dokumentkonverter
- JuPyter - Ähnliche Konzepte des KnitR-Pakets in R mit Python-Schnittstelle.
<include></include>