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

Ich habe folgenden Code:

  if (value('IV01_01') == 1 ) {
        question('IA01');
    } elseif (value('IV01_01') == 2 ) {
        if (value('HM01') == 1 ) {
            question('IA01');
        }  elseif (value('HM01') == 2 ) {
            question('IA02');
        }  else {
            question('IA03');
        }
    } else {
        question('RG02');  
        put('IV02_01', value('RG02')); 
        if (value('IV02_01') == 1 ) {
            question('IA01');
        }  elseif (value('IV02_01') == 2 ) {
            question('IA02');
        }  else {
            question('IA03');
        }    
    }

Es geht hauptsächlich um den letzten Teil, in dem ich der Kontrollgruppe durch einen Zufallsgenerator verschiedene Fragen (IATs) präsentiere. Was ich allerdings eigentlich möchte, ist dass die Kontrollgruppe parallel zur 2. Experimentalgruppe zugeordnet wird, d.h. genauso viele Probanden in der KG bekommen den IA01/IA02/IA03 als es Probanden in der EG2 bekommen. Die Anzahl der Probanden in der EG2, die einen bestimmten IAT bekommen, bestimmt sich jedoch durch eine Frage, die die KG nicht bekommt. Die Kontrollgruppe müsste also der EG2 folgen.

Gibt es da eine Möglichkeit dies umzusetzen? Also das genauso viele Probanden in der KG den jeweiligen IAT präsentiert bekommen, wie in der EG2?

Vielen Dank schon einmal im Voraus!

in SoSci Survey (dt.) by s109648 (140 points)

1 Answer

0 votes

Was ich allerdings eigentlich möchte, ist dass die Kontrollgruppe parallel zur 2. Experimentalgruppe zugeordnet wird, d.h. genauso viele Probanden in der KG bekommen den IA01/IA02/IA03 als es Probanden in der EG2 bekommen.

Möglich ja, aber nicht vollautomatisch - denn das ist eine sehr, sehr spezielle Zielsetzung :)

Sie können mit der Datenbank für Inhalte arbeiten. Und zwar legen Sie 3 Einträge an für die Anzahl der Teilnehmer in der Gruppe EG2, und 3 Einträge für die Anzahl der Teilnehmer in der KG.

Das mit dem Zählen könnte wie folgt aussehen:

if (getRoute() == 'next') {
    $group = value('IV01_01');
    if ($group == 2) {
        $sub = value('HM01');
    } elseif ($group != 1) {
        $sub = value('IV01_01');
    } else {
        $sub = 0;
    }
    $countCode = 'G'.$group.'S'.$sub;
    $curData = dbGet($countCode);
    $count = (isset($curData[0]) ? (int)$curData[0] : 0);
    $count++;
    dbSet($countCode, $count);
}

Das ist der einfache Teil. Für die "Randomisierung" müssen Sie nun abrufen, wie viele Leute Sie in den Gruppen bereits haben, dann das Ganze in Prozente umrechnen (denn die Gruppen verweden womöglich ungleich groß sein), dann gerausfinden, wo die meisten Prozente fehlen, und dann haben Sie auch schon die "Randomisierung".

by SoSci Survey (136k points)
Vielen Dank für die Antwort.
Aber würde dieser Teil nicht dazu führen, dass alle aus der KG (IV01_01=3) den Code G3S3 bekommen?
elseif ($group != 1) {
        $sub = value('IV01_01');    }
Außerdem kommt folgende Warnung:

"Warnung: Unerwartetes Element: : - fehlt hier vielleicht ein Semikolon (;) oder Anführungszeichen?

$count = (isset($curData[0]) ? (int)$curData[0] :

Warnung: Unerwartetes Element: 0 - fehlt hier vielleicht ein Semikolon (;) oder Anführungszeichen?

$count = (isset($curData[0]) ? (int)$curData[0] : 0"
Diese Warnung können Sie - wenn sie direkt beim "Fragebogen zusammenstellen" erscheint - ignorieren. Die Code-Assistenz kennt das (... ? ... : ...) einfach noch nicht. Alternatürlich können Sie schrieben:

if (isset($curData[0])) {
  $count = $curData[0];
} else {
  $count = 0;
}
> Aber würde dieser Teil nicht dazu führen, dass alle aus der KG (IV01_01=3) den Code G3S3 bekommen?

Ja. In Ihrem ursprünglichen Code haben Sie der KG ja auch immer nur die Frage IA01 gezeigt. Also alles in Ordnung :)
> Ja. In Ihrem ursprünglichen Code haben Sie der KG ja auch immer nur die Frage IA01 gezeigt. Also alles in Ordnung :)

Bin verwirrt :) Die EG1 bekommt nur den IA01, nicht die KG:
if (value('IV01_01') == 1 ) {
        question('IA01');
    }
In der KG brauche ich 3 subgroups, die je nach Anzahl der Teilnehmer in den subgroups der EG2, entweder die Frage IA01, IA02 oder IA03 präsentiert bekommen
Alles gut ... ich hatte zu schnell geantwortet.

> Aber würde dieser Teil nicht dazu führen, dass alle aus der KG (IV01_01=3) den Code G3S3 bekommen?
> elseif ($group != 1) {

Das steht nicht == (also "ist gleich"), sondern != (also "ist ungleich"). Ich hatte das so formuliert, weil ich nicht wusste, ob Sie außer 3 noch andere Codes verwenden. Sie können auch ($group == 3) schreiben.
...