0 votes
in SoSci Survey (dt.) by s155486 (130 points)

Hallo,

ich habe eine Datenbank fuer Inhalte aus der verschiedene Kommentare in einem Fragebogen kodiert werden sollen. Beim Aufrufen des Fragebogens wird der Kodierer ausgewaehlt und auf der naechsten Seite ein zufaelliger Kommentar angezeigt.
Vorher soll aber ueberprueft werden, ob dieser Kommentar von diesem Kodierer bereits bearbeitet wurde und wenn ja, dann soll dieser uebersprungen werden und ein anderer Kommentar angezeigt werden.
Ich habe ein Problem mit der allgemeinen Pruefung des Kodierers.

In den erhobenen Daten hat beispielsweise der Kodierer mit der Variable KC01==1 einen Kommentar mit dem Schluessel KC06_01==ytcom_Ugw1EKfDN1eP7Mbmmel4AaABAg kodiert. (Der Schluessel wurde bei der Beantwortung eines vorherigen Fragebogens mithilfe von put als interne Variable in den Datensatz gespeichert).

Wenn ich zu Testzwecken in einem neuen Fragebogen mit der Funktion statistic ueberpruefe, ob in meinen Daten dieser Kommentar von diesen Kodierer bereits bearbeitet wurde, gibt mir die Funktion 0 zurueck.

$bereitsCodiert = statistic('crosscount', 'KC01, KC06_01' , '1, ytcom_Ugw1EKfDN1eP7Mbmmel4AaABAg');

Dabei sollte das Ergebnis doch 1 sein (da die Parameter so einmalig im Datensatz vorhanden) oder habe ich einen Denkfehler?

Diese Funktion soll dann spaeter mit dem aktuellen Schluessel des angezeigten Kommentars in einer IF-Funktion bei dem Ergebnis 1 einen neuen Kommentar anzeigen.

1 Answer

+1 vote
by SoSci Survey (302k points)
selected by s155486
 
Best answer

Vorher soll aber ueberprueft werden, ob dieser Kommentar von diesem Kodierer bereits bearbeitet wurde und wenn ja, dann soll dieser uebersprungen werden und ein anderer Kommentar angezeigt werden.

Eine relativ einfache Lösung dafür wäre es, die Kommentare (oder zumindest Codes dafür) in einem Zufallsgenerator zu hinterlegen und in jedem "Interview" einen zu ziehen. Wenn man es so einstellt, dass die eine "Gleichverteilung in abgeschlossenen Interviews" bekommen möchte, stören abgebrochene Kodierungen auch nicht weiter.

Damit Sie das "pro Kodierer" einmal bekommen, brauchen Sie für jeden Kodierer eine eigene Kopie des Zufallsgenerators.

In den erhobenen Daten hat beispielsweise der Kodierer mit der Variable KC01==1 einen Kommentar mit dem Schluessel KC06_01==ytcom_Ugw1EKfDN1eP7Mbmmel4AaABAg kodiert.

Versuchen Sie es einmal mit Arrays statt Komma-Liste:

$bereitsCodiert = statistic('crosscount', ['KC01', 'KC06_01'] , [1, 'ytcom_Ugw1EKfDN1eP7Mbmmel4AaABAg']);

Damit kann man schonmal Ambivalenzen vermeinden. Allerdings befürchte ich, könnte der Code für den Kommenter zu lang sein. Womöglich (das müsste ich aber einmal nachsehen) werden Strings nur bis auf 8 oder 16 Zeichen gezählt.

Prüfen Sie bitte auch, ob der zu zählende Fall mit FINISHED=1 im Datensatz steht. Sonst wird er von statistic() standardmäßig nicht gezählt.

Sollte es tatsächlich an der Zeichenbegrenzung scheitern, können Sie statt der Statistik-Funktion (die wahrlich nicht dafür ausgelegt ist, den kompletten Datensatz nach dem einmaligen Vorkommen eines Codes zu durchsuchen ... einfach von der Performance-Optimierung her) die Datenbank für Inhalte verwenden. Dort könnten Sie entweder die Kombination Kodierer+Code als Schlüssel verwenden oder sogar für jeden Kommenter ein Array hinterlegen, welche Kodierer das schon bearbeitet haben.

by s155486 (130 points)
Vielen Dank fuer die Antwort. Tatsaechlich sind Schluessel mit ueber 16 Zeichen fuer statistic() das Problem und werden nicht gefunden.

Ich werde daher wie vorgeschlagen eine neue Spalte fuer den Kodierer in der Datenbank fuer Inhalte anlegen. Daran schliesst sich folgende Frage an:

Ist es moeglich, dass ich Schluessel, die ich aus der Datenbank abrufe, vorab auf Bedingungen pruefen kann? Ich habe beispielsweise eine Spalte "0" mit dem Wert 0 oder 1 (Pretest oder kein Pretest).
Kann ich vorher nun festlegen z.B bei dbKeys(), dass nur Schluessel ausgegeben werden auf die 0==1 zutrifft?

Ansonsten muesste ich naemlich mit einer Schleife durch die Arrayliste aller Schluessel iterieren und bei jedem einzelnen Kommentar von neuem die Bedingung pruefen. Bei mehreren tausend Kommentaren in der Datenbak scheint das von der Performance-Seite aus eher schwierig.

Vielen Dank!
by SoSci Survey (302k points)
> Kann ich vorher nun festlegen z.B bei dbKeys(), dass nur Schluessel ausgegeben werden auf die 0==1 zutrifft?

Sie können die Daten abrufen und dann prüfen, was Sache ist:

$data = dbGet('ytcom_Ugw1EKfDN1eP7Mbmmel4AaABAg');
if ($data[0] == 1) {
  // Schon kodiert
} else {
  // noch nicht kodiert
}

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...