0 votes
in SoSci Survey (dt.) by s273077 (110 points)

Ich habe einen Zufallsgenerator erstellt, wobei eine von beiden Abfolgen pro Proband gezogen werden soll:
1 = Mensch, A1-A20, KI, B1-B20
2 = KI, A1-A20, Mensch, B1-B20
Ohne Randomisierung käme hierbei die Seite "Mensch" zuerst und nach Block A die Seite "KI". Wenn ich jetzt einen Probedurchlauf mache, und "Mensch" zuerst kommt", dann kommt richtigerweise auch "KI" nach Block A. Wenn es aber andersherum ist, und die Seite "KI" zuerst kommt, kommt nach Block A erneut "KI". Obwohl also bei der ersten Stelle randomisiert wird, ist das an der zweiten Stelle nicht mehr der Fall und die Seite "KI" kommt so oder so, so wie sie es in der normalen Abfolge der Seiten ohne Randomisierung auch tun würde.
Zum einbinden habe ich folgen PHP-Code benutzt:
question('ZG03'); // Zettel aus dem Zufallsgenerator ziehen
$pages = value('ZG03', 'label'); // Gezogene Seitenabfolge auslesen
setPageOrder($pages, 'Check'); // Seitenabfolge anwenden
ZG03 ist hierbei die Kennung des Zufallsgenerators und "Check" die Seite, die nach Block B kommt.

1 Answer

0 votes
by SoSci Survey (306k points)

Die wahrscheinlichste Erklärung ist, dass Sie die mittels setPageOrder() definierte Seitenabfolge durch Verwendung eines der folgenden Befehle abbrechen: loopPage(), loopToPage(), setNextPage() oder noch ein setPageOrder().

Die Debug-Information im Fragebogen sollte Genaueres verraten.

by s273077 (110 points)
Ah ja, die Seiten A2-A19 bzw. B2-B19 sind auch randomisiert – das heißt dann also, dass der zweite setpageorder()-Befehl von Block A die vorausgehende Randomisierung aufhebt? Und wenn ja, kann ich etwas dagegen tun?
by SoSci Survey (306k points)
Ja, korrekt (s. auch https://www.soscisurvey.de/help/doku.php/de:create:functions:setpageorder). Die Lösung besteht darin, dass Sie gleich zu Beginn die komplette Seitenabfolge definieren. Dafür können Sie z.B.

Mensch, A1-A20, KI, B1-B20

ändern in

Mensch, %partA%, KI, %partB%

und die Platzhalter %partA% und %partB% dann durch Ihre zweite Ziehung ersetzen, bevor das Ganze an setPageOrder() geht. Wenn diese Beschreibung zu abstrakt ist, posten Sie gerne den vollständigen PHP-Code Ihrer drei Ziehungen, dann kann ich gerne konkreter werden.
by s273077 (110 points)
ja bitte, ich weiß ansonsten nicht genau, wie ich die anderen beiden Ziehungen einbinden soll bzw. wo ich %partA% und %partB% näher definieren soll.
Ich habe jetzt wie Sie vorgeschlagen haben, den Inhalt des Zufallsgenerators ZG03 geändert in:
1 = Mensch, %partA% KI, %partB%
2 = KI, %partA%, Mensch, %partB%

der dazugehörige PHP-Code auf der Seite vor "Mensch" sieht nach wie vor so aus:

question('ZG03');
$pages = value('ZG03', 'label');
setPageOrder($pages, 'Check');

die PHP-Codes für die Randomisierung der Seiten A2-A19 bzw. B2-19 sieht wie folgt aus:

question('ZG01');
$pages = valueList('ZG01', NULL, 'label');
setPageOrder($pages, 'A20');

question('ZG02');  
$pages = valueList('ZG02', NULL, 'label');  
setPageOrder($pages, 'B20');

ZG01 und ZG02 sind hierbei die Zufallsgeneratoren, die die Seiten A2-19/B2-19 enthalten.
Und schon mal vielen Dank für Ihre Hilfe!
by SoSci Survey (306k points)
Okay, der erste Teil bleibt, dahinter die Ziehung der beiden Teile.

question('ZG03');
$pages = value('ZG03', 'label');

question('ZG01');
question('ZG02');

Jetzt die Listen der beiden Teile in einen String umwandeln mittels implode()

$pagesA = valueList('ZG01', NULL, 'label');
$pagesAS = implode(',', $pagesA);
$pagesB = valueList('ZG02', NULL, 'label');
$pagesBS = implode(',', $pagesA);

Nun ersetzen wir die Platzhalter

$pages = str_replace('%partA%', $pagesAS, $pages);
$pages = str_replace('%partB%', $pagesBS, $pages);

Nochmal kontrolieren...

debug($pages);

Und anwenden:

setPageOrder($pages, 'Check');

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

...