Protokollierung und Lesen von Datendateien
Überprüfen Sie immer dreifach, ob Ihre Daten korrekt protokolliert wurden, bevor Sie Ihr Experiment starten!
Verwendung des Logger-Elements
OpenSesame protokolliert Ihre Daten nicht automatisch. Stattdessen müssen Sie ein logger-Element einfügen, in der Regel am Ende Ihrer Versuchssequenz.
Figure 1. Das logger-Element.
Der einfachste Weg, den logger zu verwenden, besteht darin, die Option "Automatisch alle Variablen protokollieren" aktiviert zu lassen. Auf diese Weise werden alle Variablen, die OpenSesame kennt, in die Log-Datei geschrieben, mit Ausnahme derjenigen, die ausdrücklich ausgeschlossen sind (siehe unten).
Sie können ausdrücklich einschließen, welche Variablen Sie protokollieren möchten. Der Hauptgrund dafür ist, wenn Sie feststellen, dass einige Variablen fehlen (weil OpenSesame sie nicht automatisch erkannt hat) oder wenn Sie die Option "Automatisch alle Variablen protokollieren" deaktiviert haben.
Sie können auch bestimmte Variablen ausdrücklich von der Log-Datei ausschließen. Der Hauptgrund dafür besteht darin, die Log-Dateien sauber zu halten, indem Variablen ausgeschlossen werden, die im Allgemeinen nicht nützlich sind.
Im Allgemeinen sollte man nur ein Logger-Element erstellen und dieses logger bei Bedarf an verschiedenen Stellen im Experiment wiederverwenden (d. h. verknüpfte Kopien desselben logger-Elements verwenden). Wenn Sie mehrere Logger erstellen (anstatt ein einzelnes Logger-Element mehrfach zu verwenden), schreiben sie alle in dieselbe Log-Datei, und das Ergebnis wird chaotisch sein!
Verwendung von Python Inline-Skript
Sie können die log
-Objekt verwenden, um in die Log-Datei zu schreiben:
log.write('Dies wird in die Log-Datei geschrieben!')
Für weitere Informationen siehe:
Im Allgemeinen sollten Sie nicht direkt in die Log-Datei schreiben und gleichzeitig ein logger-Element verwenden; dies führt zu unübersichtlichen Log-Dateien.
Format der Datendateien
Wenn Sie das Standard logger-Element verwendet haben, sind die Datendateien im folgenden Format formatiert (einfach standard csv):
- Klartext
- kommagetrennt
- doppelte Anführungszeichen (wörtliche doppelte Anführungszeichen werden durch Rückwärtsschrägstriche escaped)
- Unix-Stil Zeilenumbrüche
- UTF-8 codiert
- Spaltennamen in der ersten Zeile
Lesen und Verarbeiten von Datendateien
In Python mit Pandas oder DataMatrix
In Python können Sie pandas verwenden, um csv-Dateien zu lesen.
import pandas
df = pandas.read_csv('subject-1.csv')
print(df)
Oder DataMatrix:
from datamatrix import io
dm = io.readtxt('subject-1.csv')
print(dm)
In R
In R können Sie einfach die read.csv()
Funktion verwenden, um eine einzelne Datendatei zu lesen.
df = read.csv('subject-1.csv', encoding = 'UTF-8')
head(df)
Außerdem können Sie die read_opensesame()
Funktion aus dem readbulk Paket verwenden, um mehrere Datendateien einfach zu lesen und zu einer großen Datentabelle zusammenzuführen. Das Paket ist auf CRAN verfügbar und kann über install.packages('readbulk')
installiert werden.
# Lesen und Zusammenführen aller in dem Ordner 'raw_data' gespeicherten Datendateien
library(readbulk)
df = read_opensesame('raw_data')
In JASP
JASP, ein Open-Source-Statistikpaket, öffnet csv-Dateien ohne weiteres.
In LibreOffice Calc
Wenn Sie eine csv-Datei in LibreOffice Calc öffnen, müssen Sie das genaue Datenformat angeben, wie in Figure 2 dargestellt. (Die Standardeinstellungen sind oft korrekt.)
Figure 2.
In Microsoft Excel
In Microsoft Excel müssen Sie den Textimport-Assistenten verwenden.
Zusammenführen mehrerer Datendateien in eine große Datei
Für manche Zwecke, wie zum Beispiel die Verwendung von Pivot-Tabellen, kann es praktisch sein, alle Datendateien in eine große Datei zusammenzuführen. Mit Python DataMatrix können Sie dies mit dem folgenden Skript tun:
import os
from datamatrix import DataMatrix, io, operations as ops
# Ändere dies in den Ordner, der die .csv-Dateien enthält
SRC_FOLDER = 'student_data'
# Ändere dies in eine Liste von Spaltennamen, die du behalten möchtest
COLUMNS_TO_KEEP = [
'RT_search',
'load',
'memory_resp'
]
dm = DataMatrix()
for basename in os.listdir(SRC_FOLDER):
path = os.path.join(SRC_FOLDER, basename)
print('Lese {}'.format(path))
dm <<= ops.keep_only(io.readtxt(path), *COLUMNS_TO_KEEP)
io.writetxt(dm, 'zusammengeführte-daten.csv')
Logging in OSWeb
Wenn du ein Experiment im Browser mit OSWeb ausführst, funktioniert das Logging anders als wenn du ein Experiment auf dem Desktop ausführst.
Insbesondere, wenn du ein OSWeb-Experiment direkt aus OpenSesame startest, wird die Protokolldatei am Ende des Experiments heruntergeladen. Diese Protokolldatei hat das Format .json
. Wenn du ein OSWeb-Experiment von JATOS aus startest, gibt es keine Protokolldatei als solche, sondern alle Daten werden an JATOS gesendet, von wo aus sie heruntergeladen werden können.
Sieh auch: