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

Ich habe zwei Fragenblöcke mit je 130 Seiten, die durch eine Instruktion getrennt sind. In beiden Frageblöcken sollen nur 45 Seiten in zufälliger Reihenfolge angezeigt werden. Allerdings sollen die 45 Seiten des zweiten Blocks von der Auswahl der Seiten im ersten Block bestimmt werden (wird in Block 1 Seite BA01 gezeigt, dann soll in Block 2 UA01 angezeigt werden usw.), d.h. die Seiten des zweiten Blocks sollen nicht zufällig aus den 130 Seiten gewählt sein, sondern in Abhängigkeit der Seiten in Block 1.

Meine Lösungsversuche gingen bisher schief:

  • setze ich die Fragen in Block 1 als Filterfragen (in BA01 angeben, dass nur bei Wahl der Variablen 1, 2, 3 und 4 im Fragebogen noch UA01 angezeigt wird), werden dennoch in Block 2 alle Fragen gezeigt, da für die nicht in Block 1 gezeigten Seiten keine Variable auszulesen ist und sie daher trotzdem angezeigt werden
  • setze ich einen Zufallsgenerator ein, der gleichzeitig die Seiten beider Blöcke auswählt, kommen die Seiten nicht mehr nach Blöcken getrennt, sonder BA01, UA01, BA02, UA02 usw.

Gibt es hier eine Lösung/einen Weg? Die Erklärung müsste so formuliert sein, dass ein Newbie ohne Vorkenntnisse im Programmieren sie versteht.
Kann man Beispielsweise die 45 Seiten beider Blöcke im gleichen Zufallsgenerator generieren lassen, dann aber im ersten Block von diesen nur alle mit "BA" im Namen anzeigen und im zweiten Block erst dann alle mit "UA" im Namen?
Oder kann man irgendwie einstellen, dass nicht angezeigte (NICHT nicht beantwortete)/vom Zufallsgenerator nicht ausgewählte Seiten automatisch eine Variable (-9) zugewiesen bekommen, sodass es mit dem Filter klappt?

1 Answer

0 votes
by SoSci Survey (304k points)

Generell ist die Verwendung einer großen Anzahl von Seiten technisch sehr unhandlich. Meist ist die Verwendung von loopPage() in Kombination mit Arrays deutlich effizienter - auch was eine Steuerung wie von Ihnen skizziert angeht.

die Seiten des zweiten Blocks sollen nicht zufällig aus den 130 Seiten gewählt sein, sondern in Abhängigkeit der Seiten in Block 1.

Wie sie dieses "in Abhängigkeit" denn konrket aus?

Die Erklärung müsste so formuliert sein, dass ein Newbie ohne Vorkenntnisse im Programmieren sie versteht.

Ich gebe mir Mühe, es einfach zu formulieren - und Sie lesen dafür in der Anleitung ein wenig, um die Sache mit Arrays zu verinnerlichen. Dann bekommen wir das gelöst. Aber nun erklären Sie mir bitte erst einmal, wie die Auswahl der beiden Blöcke zusammenhängt.

by s253140 (110 points)
Vielen Dank für die Antwort und dass Sie mir helfen möchten!

Ich glaube, ich muss kurz etwas ausholen, um die Sache zu erklären:
Ich habe 129 Abbildungen aus drei verschiedenen Kategorien (A01-A58, B01-B51, U01-U20 -> hinterer Teil der Seitenkennung), zu denen ich gerne jeweils zwei Fragen stellen möchte (Fragentyp "B" bzw. "U" -> initial in der Seitenkennung). Daraus ergaben sich zwei Blöcke und sechs Rubriken:

Block 1: BA01-BA58, BB01-BB51, BU01-BU20 -> 129 Seiten
Block 2: UA01-UA58, UB01-UB51, UU01-UU20 -> 129 Seiten

Die Blöcke sind durch eine Instruktion im Fragebogen getrennt. Nun sollen aus jedem Block nur 45 Seiten/Fragen angezeigt werden, da der Fragebogen sonst zu lang wäre. Im ersten Block können zufällig 45 Seiten in zufälliger Reihenfolge gezeigt werden.
Im zweiten Block sollen nun aber die 45 Fragen zu denselben Abbildungen wie im ersten Block gestellt werden: Kam in Block 1 also BU18 vor, soll in Block 2 UU18 kommen. Wenn in Block 1 BB03 angezeigt wurde, muss in Block 2 UB03 gezeigt werden (also wenn ich eine Liste der 45 Seiten in Block 1 habe, muss der erste Buchstabe "B" zu "U" getauscht werden). Die Reihenfolge der Fragen in Block 2 soll aber auch zufällig sein.
Ich hoffe, das war verständlich, es klingt erstmal kompliziert?

Ich hoffe, Sie können mir hier weiterhelfen. Ich habe auch schon losgelegt, mich über Arrays tiefergehend zu informieren, so ganz durchgestiegen bin ich aber leider noch nicht.
by SoSci Survey (304k points)
Danke für die anschauliche Erklärung.

> Nun sollen aus jedem Block nur 45 Seiten/Fragen angezeigt werden, da der Fragebogen sonst zu lang wäre.

Ich behaupte, das ist auch bei 2x45 = 90 Seiten schon der Fall.

> Kam in Block 1 also BU18 vor, soll in Block 2 UU18 kommen

Dann lassen Sie einen Zufallsgenerator doch einfach 45 aus den 129 Codes ziehen, und geben Sie dabei den hinterne Teil an, also als Codes im Zufallsgenrator:

A01
A02
...
U20

Daraus können Sie dann an der Stelle, wo Sie vermutlich setPageOrder() verwenden, ein "A" oder ein "B" voranstellen. Das könnte so aussehen, wenn RG01 Ihr Zufallsgenerator ist.

$codes = valueList('RG01', 'label');
$pages = [];
foreach ($codes as $code) {
  $pages[] ='A'. $code;
}
setPageOrder($pages, 'instructions');

Und im zweiten Teil dann mit 'B', versteht sich.

> Die Reihenfolge der Fragen in Block 2 soll aber auch zufällig sein.

Okay, dann noch ein shuffle() vor dem setPageOrder().

$codes = valueList('RG01', 'label');
$pages = [];
foreach ($codes as $code) {
  $pages[] ='B'. $code;
}
shuffle($pages);
setPageOrder($pages, 'end');

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

...