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

Herzlichen Dank, das ist sehr nett.

Ich habe die Funktion gerade ausprobiert. Die Funktion funktioniert einwandfrei, wenn ich Zahlen reinschreibe. Da ich für die Längsschnittstudie Werte in einer Datenbank speichere, habe ich es auch noch auf diesem Weg versucht:

$test = array($data[7], $data[8], $data[9], $data[10], $data[49], $data[50]);
$testSD = calcSD($test, true);
html(' '.$testSD .' ');

Leider funktioniert die Funktion für diesen Fall nicht. Gibt es eine Möglichkeit, dies zu umgehen?

Vielen Dank nochmals für Ihre Hilfe!

in SoSci Survey (dt.) by s027767 (235 points)

1 Answer

0 votes

Meine Vermutung ist, dass die Daten nicht so in der Funktion ankommen, wie sie sollten.

Ergänzen Sie unter Zeile 1 doch bitte einmal ein debug(). Was wird dann im Debug-Modus (gelber Pfeil) angezeigt?

$test = array($data[7], $data[8], $data[9], $data[10], $data[49], $data[50]);
debug($test);
debug($data);
by SoSci Survey (246k points)
Im Debug-Modus werden dann die Werte der Datenbank angezeigt, aber immer mit dem Index vornedran als "Hochzahl".

Mit der Funktion intval() um die Datenbankeinträge drum herum hat es jetzt doch noch funktioniert.
$test1 = array(intval($data[7]),intval($data[8]),intval($data[9]),intval($data[10]),intval($data[49]),intval($data[50]));

Eine Frage habe ich noch zur calcSD-Funktion. Gibt es auch eine Möglichkeit, die Standardabweichung nur für Werte zu berechnen, die z.B. grösser sind als -4?
(In der Studie haben wir die Skala 1 bis 7 (in SosciSurvey) umskaliert in -3 bis +3 und dann erst in der Datenbank gespeichert.)

Vielen, vielen Dank nochmals!
Eigentlich sollte die Funktion calcSD() Strings, die eine Nummer enthalten, automatisch in Zahlen umwandeln. Das muss ich mir nochmal ansehen. Danke für den Hinweis.

> Gibt es auch eine Möglichkeit, die Standardabweichung nur für Werte zu berechnen, die z.B. grösser sind als -4?

Noch nicht, aber das klingt nach einer überschaubaren Herausforderung. Ich melde mich morgen nochmal :)
So, das mit den Strings funktioniert nun. Das intval() kann wieder raus.

Weiterhin gibt es nun eine neue Funktion (Warnung: Gründlich testen!) namens arrayFilter(). Die erwartet als ersten Parameter die zu filternden Werte und als zweiten Parameter eine Formel, was erlaubt ist. In Ihrem Fall also:

$test2 = arrayFilter($test1, 'x > -4');

oder

$test2 = arrayFilter($test1, '(x >= -3) and (x <= 3)');

Die Variable $test2 können Sie dann natürlich mit calcSD() verwenden.
Vielen, vielen Dank für die schnelle Hilfe!
...