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

Wie kann ich bei der Variable SM02 aus den drei Items den Mittelwert errechnen und je nach Mittelwert ein unterschiedliches Feedback generieren. Liegt der Mittelwert der drei Items z.B. unter oder gleich 2 dann kommt ein Feedback, welches die Studienmotivation antreiben soll (dieses ist unter ´ZG09´ codiert). Wert > 2 und < 5 (Feedback: ´ZG10´). Wert >=5 (Feedback: ´ZG11´).

Die einzelnen Items heißen:
StudienMot
[01] Wie hoch schätzt du heute deine Studienmotivation ein?

Mot_intrin
[02] Heute freue ich mich auf mein Studium/meine studienrelevanten Aufgaben und darauf, mich mit dessen Inhalten auseinanderzusetzen.

Mot_extrin
[03] Heute treibt mich zum Studium hauptsächlich der Druck, den ich verspüre, an.
Im Bild sieht man die Items.

Die ursprüngliche Codierung war nur für das erste Item und sah folgendermaßen aus:

if((value('SM02_01')==1) || (value('SM02_01') == 2)){

	question('ZG09'); 
	text(value('ZG09', 'label'));
}
else if((value('SM02_01')==3) || (value('SM02_01') == 4)){
	question('ZG10'); 
	text(value('ZG10', 'label'));
}
else if((value('SM02_01')==5) || (value('SM02_01') == 6)){
	 question('ZG11'); 
	text(value('ZG11', 'label'));
}

1 Answer

0 votes
by SoSci Survey (327k points)

Wie kann ich bei der Variable SM02 aus den drei Items den Mittelwert errechnen

Zum Beispiel mittels valueSum().

Das Ergebnis können Sie dann einfach in einem Filter verwenden, zum Beispiel so:

$mean = valueMean('SM02');
if ($mean < 4) {
  text('AB02');
} elseif ($mean < 10) {
  text('AB03');
} else {
  text('AB04');
}
by s160917 (110 points)
Ich habe folgenden Code ausprobiert:
valueSum('SM02', '1-3');
$mean = valueMean('SM02');
if ($mean <= 2) {
  text(value('ZG09', 'label'));
} elseif ($mean >2, <5) {
  text(value('ZG10', 'label'));
} elseif ($mean >=5) {
  text(value('ZG11', 'label'));

Es wird jedoch immer wieder eine Meldung angezeigt und ich verstehe nicht warum.
by SoSci Survey (327k points)
Da sollte eine Fehlermeldung kommen, dass Ihr Code syntaktisch einfach nicht korrekt ist.

> valueSum('SM02', '1-3');

Diese Zeile können Sie entfernen, sie hat keinen Effekt.

} elseif ($mean >2, <5) {

Der Filter müsste korrekt lauten:

} elseif (($mean >2) && ($mean < 5)) {

Oder einfach nur

} elseif ($mean < 5) {

weil der Fall <= 2 ja schon vorher abgefangen wurde.

Und am Ende fehlt m.E. noch eine geschweifte Klammer.

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

...