Autor des Abschnitts: Jonathon Love

jamovi und R kombinieren

Ein großer Vorteil von jamovi ist, dass es nicht nur auf der Statistiksprache R aufbaut, sondern es auch sehr einfach macht, von jamovi aus auf R zuzugreifen, und umgekehrt. Der Syntaxmodus, Rj, jmvconnect und jmvReadWrite helfen Ihnen dabei.

Syntax-Modus

jamovi bietet einen „R-Syntax-Modus”. In diesem Modus erzeugt jamovi R-Code für jede Analyse. Um in den Syntax-Modus zu wechseln, wählen Sie das Anwendungsmenü (⋮) oben rechts in jamovi und setzen dort einen Haken in die Checkbox Syntax mode. Es ist möglich, den Syntaxmodus zu verlassen, indem Sie diesen ein zweites Mal anklicken (d.h. das Häkchen abwählen).

Die Analysen funktionieren im Syntaxmodus weiter wie gewohnt, aber sie erzeugen jetzt R-Syntax (als oberste Ausgabe innerhalb jeder Analyse). Wie gewohnt können Sie mit der rechten Maustaste auf alle Ergebnisobjekte in jamovi (einschließlich der R-Syntax) klicken, Sie mit dem entsprechenden Menü-Eintrag kopieren und sie danach z. B. in eine R-Sitzung (oder einen Text-Editor) einfügen. Alle Analysen, die in jamovi enthalten sind, sind in einer R-Sitzung innerhalb des R-Pakets jmv verfügbar.

Die mitgelieferte R-Syntax beinhaltet nicht den Schritt des Datenimports. Dies kann aber leicht durch die Verwendung der R-Pakete jmvconnect und jmvReadWrite erreicht werden (im Folgenden näher erläutert). jmvReadWrite ermöglicht es Ihnen, jamovi-Datendateien (.omv) in R zu lesen und zu schreiben, jmvconnect erlaubt Ihnen, von R aus auf Datensätze zuzugreifen, die Sie in Ihrer jamovi-Sitzung geöffnet haben.

Rj-Editor

Rj ist ein Modul für jamovi (siehe Module in jamovi installieren) das den Rj- Editor enthält. Sie können den Rj- Editor verwenden, um ihre Daten in jamovi unter Verwendung von R-Code und Ihren bevorzugten R-Paketen zu analysieren.

um_Rj1

Es gibt eine Reihe von Situationen, in denen Sie dies tun möchten. Zum Beispiel gibt es gibt einige Analysen in R-Paketen, die (noch) nicht als jamovi-Module verfügbar sind. Der Rj-Editor ermöglicht es Ihnen, diese Analysen innerhalb von jamovi zu nutzen. Außerdem können Sie Schleifen und if-Anweisungen verwenden, was (unter anderem) bedingte Analysen und Simulationsstudien ermöglicht.

Für einige ist die Verwendung von R in jamovi ein idealer Einstieg in das Lernen von R. Für andere kann es eine einfache Möglichkeit sein, R-Analysen mit weniger technisch versierten Kollegen zu teilen (und einige Menschen bevorzugen es, die Kommandozeile zu verwenden).

Um eine R-Analyse durchzuführen, wählen Sie Rj Editor aus dem R-Symbol in der Registerkarte Analyses. Dadurch wird der Editor aufgerufen, in dem Sie R-Code verwenden können. Der Datensatz, den Sie in jamovi geöffnet haben, ist unter dem Namen data als data frame zugänglich. Um loszulegen, könnten Sie z.B. die R-Funktion descriptives ausführen.

um_Rj2

Oder wenn Sie den tidyverse-Ansatz bevorzugen, könnten Sie eingeben:

library(jmv)
library(dplyr)
library(magrittr)

select(data, 1:3) %>% descriptives()

Während Sie R-Code eingeben, werden Sie feststellen, dass Rj automatisch Funktionsnamen zum Vervollständigen vorschlägt. Um den Code auszuführen, klicken Sie auf das grüne Dreieck oder drücken Sie Strg + Umschalt + Enter (oder ⌘ + Umschalt + Enter, wenn Sie einen Mac benutzen). jamovi führt den R-Code aus und die Ergebnisse erscheinen in der Ergebnisausgabe wie andere Analysen. Sie können weiterhin Änderungen am Code vornehmen und ihn dann erneut ausführen.

Standardmäßig nutzt Rj die Version von R, die in jamovi enthalten ist. Dies beinhaltet viele R-Pakete (jmv und alle seine Abhängigkeiten). Der Funktionsumfang dieser R-Pakete reicht sicherlich für die Bedürfnisse der meisten Nutzer. Wenn Sie zusätzliche R-Pakete benötigen, können Sie die System R-Version verwenden. Wenn Sie ⚙ (oben rechts in der Code-Box) wählen, sehen Sie eine Option, um die verwendete R version zu ändern. Die Version System R verwendet die Version von R, die Sie auf Ihrem System installiert haben. Dies hat den Vorteil, dass Ihr R Code nun Zugriff auf alle Pakete hat, die Sie für diese Version von R installiert haben. Um System R zu benutzen, benötigen Sie das R-Paket jmvconnect, das in der R-Bibliothek auf Ihrem System installiert sein muss.

Das R-Paket jmvconnect

Das R-Paket jmvconnect ermöglicht der R-Version auf Ihrem System den Zugriff auf die in jamovi geöffneten Datensätze. Sie können es unter R mit dem folgenden Kommando installieren:

install.packages('jmvconnect')

Sobald dies geschehen ist, sollte ein Wechsel von jamovi R zu System R problemlos möglich sein.

Etwas, an das Sie denken müssen, ist, dass eine gemeinsame Nutzung von jamovi-Dateien mit Kollegen komplizierter wird, wenn Sie System R verwenden. Wenn diese Kollegen Änderungen vornehmen und Ihre Analysen aktualisieren wollen, müssen sie dieselben R-Pakete installiert haben - das ist der Preis der Flexibilität!

Wenn R-Code im Rj-Editor ausführt wird, steht standardmäßig der gesamten Datensatz als data frame mit dem Namen data zur Verfügung. Es ist jedoch wahrscheinlich, dass Ihre Analyse nur einige wenige Spalten verwendet und nicht den gesamten Datensatz benötigt. Sie können die Spalten, die der Analyse zur Verfügung gestellt werden, einschränken, indem Sie einen speziellen Kommentar am Anfang Ihres Skripts einfügen. Dieser hat die Form:

# (column1, column2, column3)

library(jmv)

...

In diesem Fall werden nur die benannten Spalten des Datensatzes angezeigt. Dies kann die Analyse beschleunigen, insbesondere wenn Sie mit großen Datensätzen arbeiten. Außerdem weiß jamovi dadurch, dass die Analyse nur diese Spalten verwendet, und die Analyse muss nicht erneut durchgeführt werden, wenn Änderungen an anderen Spalten vorgenommen werden.

Es kann vorkommen, dass Sie für die Analyse eines Datensatzes zu einer R-Sitzung wechseln möchten. An dieser Stelle kommt das R-Paket jmvconnect zum Einsatz. Mit jmvconnect können Sie die Datensätze aus einer laufenden jamovi-Instanz in eine R-Sitzung einlesen. Es hat zwei Funktionen: what() listet die verfügbaren Datensätze auf, und read() liest sie ein. Sie könnten zum Beispiel:

> library(jmvconnect)
> what()

 Available Data Sets
 ─────────────────────────────────────
         Title           Rows    Cols
 ─────────────────────────────────────
    1    iris             150       5
    2    Tooth Growth      60       3
 ─────────────────────────────────────

verwenden und danach mit einem der folgenden beiden Befehle den Datensatz einlesen:

data <- read('Tooth Growth')
data <- read(2)

Das R-Paket jmvReadWrite

Das R-Paket jmvReadWrite liest und schreibt jamovi-Daten-Dateien (.omv) in R. Es kann mit dem folgenden Befehl installiert werden:

install.packages('jmvReadWrite')

Ein typischer Anwendungsfall wäre, wenn Sie eine große Anzahl von Ergebnisdateien verarbeiten möchten (z. B. CSV-Dateien von mehreren Teilnehmern an einem Experiment oder mit Antworten aus verschiedenen Fragebögen). Sobald Sie Ihren Datensatz aus diesen Dateien zusammengestellt haben, können Sie ihn mit der Funktion write_omv() schreiben.

library(jmvReadWrite)

# assemble your data set (named dtaSet)...

write_omv(dtaSet, "FILENAME.omv")

Ebenso erlaubt Ihnen die read_omv-Funktion, jamovi-Datendateien in R zu lesen. Ein weiterer typischer Anwendungsfall wäre das Lesen einer Datendatei, das Durchführen von Manipulationen, die derzeit in jamovi nicht möglich sind, und das anschließende Zurückschreiben der veränderten Datei (im jamovi-Dateiformat).

library(jmvReadWrite)

dtaSet <- read_omv("FILENAME.omv")

# do some modifications to your data set

write_omv(dtaSet, "FILENAME.omv")

Es gibt eine Reihe von Hilfsfunktionen, die in jmvReadWrite implementiert sind. Sie ermöglichen Operationen wie das Umordnen der Spalten/Variablen eines Datensatzes (arrange_cols_omv), die Massenkonvertierung einer Datendatei in das jamovi-Dateiformat (convert_to_omv; z.B. aus einer früher verwendeten Statistiksoftware), die Konvertierung von Datendateien vom long- ins wide-Format (long2wide_omv) und vom wide- ins long-Format (wide2long_omv), das Hinzufügen von Variablen aus mehreren Datensätzen (merge_cols_omv), das Hinzufügen von Fällen aus mehreren Datensätzen (merge_rows_omv), oder das Sortieren eines Datensatzes nach einer oder mehreren Variablen (sort_omv).

Ein weiterer Anwendungsfall für read_omv ist die Erstellung von R-Markdown-Dateien unter Verwendung der Ergebnisse Ihrer jamovi-Analysen. Der getSyn-Parameter bestimmt, ob die Syntax der in der Datei enthaltenen Analysen extrahiert wird. Um die Syntax auszuführen, muss das R-Paket jmv installiert sein. Wenn Sie anschließend mit den Ergebnissen arbeiten möchten, empfiehlt es sich, diese einer Variablen zuzuweisen (siehe den zweiten eval unten). Tabellen aus den Ergebnissen können mit der Funktion asDF in einen data frame umgewandelt werden (z.B. result$main$asDF).

library(jmvReadWrite)
library(jmv)

data <- read_omv("FILENAME.omv", getSyn = TRUE)

# the analyses are stored in the attribute syntax
attr(data, "syntax")

# with using an index, the n-th analysis can be accessed (first line)
# and run / evaluated (second line)
attr(data, "syntax")[[1]]
eval(parse(text = attr(data, "syntax")[[1]]))

# often it is more useful to assign the results to a variable when
# running analyses and later on use the contents of that variable
eval(parse(text = paste0("result = ", attr(data, "syntax")[[2]])))
names(result)
# (returns the names of the output elements - tables, figures, and
# groups: sub-headings, e.g., Estimated Marginal Means in an ANOVA,
# that contain further tables and figures)