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

0 votes

Hallo,

ich möchte eine Randomisierung durchführen, wobei ich mehrere Seitenblöcke in zufälliger Reihenfolge darbieten möchte und später dann die Rangfolge daraus auslesen können möchte. Aus dem Benutzerhandbuch habe ich dafür einen Code zusammengestellt und die zufällige Darstellung der Fragen funktioniert, aber leider werden falsche Rangfolgen gespeichert, die nicht den tatsächlichen entsprechen. Woran könnte das liegen? Und ich würde vielleicht auch gerne innerhalb der Blöcke eine Randomisierung machen in der Form, dass innerhalb eines Blockes immer 2 einzelne Blöcke sind deren Reihenfolge zufällig dargeboten wird. Wie könnte ich das machen? Mein Code aktuell sieht so aus (Meine Interne Variable ist S001):

if (!isset($pages)) {
  $pages= array('a1-a3', 'b1-b3', 'c1-c3');
  shuffle($pages);
  $pages[] = 'end';
  registerVariable($pages);
}
setPageOrder($pages);

$indices = array_keys($pages);
shuffle($indices);
$random = array();
for ($i=0; $i<count($indices); $i++) {
  $id = id('S001', $indices[$i] + 1);
  put($id, $i + 1);
  $random[$i] = $pages[$indices[$i]];
}
in SoSci Survey (dt.) by s153384 (150 points)
edited by SoSci Survey

1 Answer

+1 vote
 
Best answer

aber leider werden falsche Rangfolgen gespeichert, die nicht den tatsächlichen entsprechen.

Das dürfte daran liegen, dass Sie doppelt mischen. Enmal shuffle($pages) und dann nochmal shuffle($indices). Lassen Sie das erste shuffle() bitte weg:

if (!isset($random)) {
  $pages= array('a1-a3', 'b1-b3', 'c1-c3');
  $indices = array_keys($pages);
  shuffle($indices);
  $random = array();
  for ($i=0; $i<count($indices); $i++) {
    $id = id('S001', $indices[$i] + 1);
    put($id, $i + 1);
    $random[$i] = $pages[$indices[$i]];
  }
  registerVariable($random);
}

$random[] = 'end';
registerVariable($random);
setPageOrder($random);
by SoSci Survey (223k points)
selected by s153384
...