0 votes
in SoSci Survey (dt.) by s286709 (140 points)

Hallo zusammen
Wir haben verschiedene Kategorien von Vignetten, die den Probanden per Zufallsauswahl vorgelegt werden sollen.
Es gibt drei Gruppen von Vignetten (Set A (16), Set B (8), Set C (2)).
Die Probanden sollen zufällig sehen: 4 Vignetten aus A, 2 aus B, 1 aus C.
Dabei soll mit einer A-Vignette angefangen werden.
Danach soll die Reihenfolge zufällig sein.
Die Vignetten liegen als Bilder vor.
Zu jeder Vignette werden die gleichen Fragen gestellt.
Ich wäre dankbar für einen Tipp, was der effizienteste Weg ist, das umzusetzen.
Danke!

1 Answer

0 votes
by SoSci Survey (335k points)

Legen Sie für jedes Set einen Zufallsgenerator an und ziehen Sie daraus pro Inteview die notwendige Anzahl Vignetten.

Nehmen Sie die Ziehung in der ersten Variablendes Zufallsgenerators und mischen Sie die anderen mittels array_merge(), valueList() und shuffle(). Dann haben Sie eine Liste mit den gewünschten Eigenschaften, die Sie nur noch per loopPage() "abarbeiten" müssen.

Das war jetzt sehr komprimiert ... Details gerne auf Nachfrage.

by s286709 (140 points)
Vielen Dank schon mal!

Den ersten Satz habe ich geschafft ;-)
Aber für die weiteren Schritte (Nehmen Sie...) brauche ich doch etwas detailliertere Hilfe....
by SoSci Survey (335k points)
Fangen Sie mal damit an, dass Sie mittels valueList() die Ziehungen (Variablen) der drei Zufallsgeneratoren in drai Variablen einlesen, also etwa so:

$a = valueList('RG01');

Und lassen Sie sich diese drei Arrays mal mittels debug() anzeigen.

Im nächsten Schritt entfernen Sie Arra-Schlüssel mittels array_values() und lassen sich das Ergebnis nochmal anzeigen.

Sagen Sie Bescheid, ob das funktioniert oder an welcher Stelle Sie welchen Fehler bekommen.
by s286709 (140 points)
ok, das scheint zu klappen...?

[Information]    Interview started (new case no. 30)
[Information]    Questionnaire base from project PPH will be used
[Processing]    Create page 2 in questionnaire base
[Content]    Show text Pre-Vignette
[Content]    Create question V004
[Information]    The random generator V004 drew these codes: 14, 5, 6, 11
[Content]    Create question V005
[Information]    The random generator V005 drew these codes: 2
[Content]    Create question V006
[Information]    The random generator V006 drew these codes: 7, 5
[Information]    valueList(V004) = Array [V004x01:14, V004x02:5, V004x03:6, ...]
[Information]    valueList(V005) = Array [V005:2]
[Information]    valueList(V006) = Array [V006x01:7, V006x02:5]
[Information]    valueList(V004) = Array [V004x01:14, V004x02:5, V004x03:6, ...]
[Information]    valueList(V005) = Array [V005:2]
[Information]    valueList(V006) = Array [V006x01:7, V006x02:5]
[Content]    Create question V001
[Information]    The following placeholders have been prepared:
%link% = (text) <a href="index.php?t=defini...
by SoSci Survey (335k points)
Ich empfehle, dass Sie in den Zufallsgeneratoren die Codes überscheidnungsfrei wählen. Also im ersten 1-16, im zweiten 21-28 und im dritten 31-32. Das vermeidet Stress.

Und wenn Sie es wie folgt schreiben, würden Sie die Labels  statt der Nummern bekommen:

$a = valueList('RG01', null, 'label');

Was ich in der Ausgabe noch nicht sehe ist, dass Sie mittels array_values() die benannten Arrays in einfache Listen umgewandelt haben. Das wäre hilfreich (wenn auch nicht zwingend notwendig), damit Sie im nächsten Schritt alles zusammenfügen und mischen können.
by s286709 (140 points)
sorry, ich struggle da.
(wie) geht das  mit array_merge?
by SoSci Survey (335k points)
PHP-Befehle sind im PHP Manual beschrieben: https://www.php.net/manual/de/function.array-merge.php - Konkret funktioniert es:

$neuesArray = array_merge($array1, $array2, $array3);

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

...