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 führe eine Studie durch, bei der ich den Probanden unterschiedliche Szenarien (in Textform) randomisiert zur Verfügung stelle und die Probanden diese randomisierten Szenarien dann anhand von Fragen bewerten.

Mit Hilfe des Zufallsgenerators ist die Randomisierung der Texte kein Problem. Je nach zugeteiltem Szenario müssen andere Fragen beantwortet werden.

Ist diese Funktion mit SoSci abbildbar? Ich habe schon diverse Möglichkeiten mit PHP-Codes oder Filtern getestet aber komme nicht weiter.

Ich freue mich auf eine Rückmeldung und bedanke mich bereits vorab für die Hilfe!

in SoSci Survey (dt.) by s121462 (120 points)
Das Kapitel "Randomisierung" habe Sie bereits gelesen?
https://www.soscisurvey.de/help/doku.php/de:create:randomization

Wenn ja, posten sie doch bitte den bisher verwendeten PHP-Code und beschreiben Sie kurz, was nicht funktioniert.
if (value('ZV01') == 1) {
  question('SZ02');
} elseif (value('ZV01') == 2) {
  question('SZ03');
} elseif (value('ZV01') == 3) {
  question('SZ04');
} elseif (value('ZV01') == 4) {
  question('SZ05');
} elseif (value('ZV01') == 5) {
  question('SZ06');
} elseif (value('ZV01') == 6) {
  question('SZ07');
} elseif (value('ZV01') == 7) {
  question('SZ08');
} elseif (value('ZV01') == 8) {
  question('SZ09');
} else {
}

Der PHP-Code funktioniert. Danach soll nachfolgend der Szenarien (SZ02), (SZ04),(SZ06), (SZ08) die Fragen (AV01) und (AV02) angezeigt werden.
Bei den Szenarien (SZ03), (SZ05),(SZ07), (SZ09) die Fragen (AV03) und (AV04) angezeigt werden. Daher habe ich auf der nächsten Seite folgenden Code eingegeben:

if (question('SZ02')) {
  question('AV01', 'AV02');
} elseif (question('SZ03')) {
  question('AV03', 'AV04');
} elseif (question('SZ04')) {
  question('AV01', 'AV02');
} elseif (question('SZ05') {
  question('AV03', 'AV04');
} elseif (question('SZ06')) {
  question('AV01', 'AV02');
} elseif (question('SZ07')) {
  question('AV03', 'AV04');
} elseif (question('SZ08')) {
  question('AV01', 'AV02');
} elseif (question('SZ09')) {
  question('AV03', 'AV04');
} else {
}

Sollte ich hier besser mit gotopage() arbeiten?

1 Answer

0 votes

Sollte ich hier besser mit gotopage() arbeiten?

Nein, davon würde ich abraten, denn das Herumspringen ist meist nur dann sinnvoll, wenn Fragen übersprungen werden sollen.

if (question('SZ02')) {
  question('AV01', 'AV02');
} elseif (question('SZ03')) {
  question('AV03', 'AV04');
} // etc.

In diesem Code sind zwei Missverständnisse. Zum einen im if - dort können Sie nur value() prüfen, nicht question(). Zum anderen benötigen Sie zum Anzeigen von zwei Fragen zweimal question().

if (value('ZV01') == 1) {
  question('AV01');
  question('AV02');
} elseif (value('ZV01') == 2) {
  question('AV03');
  question('AV04');
} // etc.

Und nachdem Sie für alle "geraden" und "ungeraden" Bedingungen dieselben Fragen stellen, können Sie den kompletten (!) zweiten Code wie folgt vereinfachen:

if ((value('ZV01') % 2) == 1) {
  question('AV01');
  question('AV02');
} else {
  question('AV03');
  question('AV04');
}

Das Prozent-Zeichen (%) rechnet den Modulus, also den Divisionsrest. Damit können Sie in Ihrem Fall die gerden und ungeraden Bedingungen leicht unterscheiden :)

by SoSci Survey (129k points)
...