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

Kann ich die interne Variable denn noch nachträglich anlegen? Ich habe 12 Items mit insgesamt zwölf Teilfragen (Beste Lösung/schlechteste Lösung)
Ich hab mir die Anleitung angeschaut, weiß aber einfach nicht wie ich es zuordnen soll. Langsam bin ich mit meinem Latein am Ende

related to an answer for: Richtige Eingabe der Codes?
in SoSci Survey (dt.) by s085041 (225 points)
Ich bin nun irgendwie total irritiert. Ich möchte doch nur, dass ich alle Daten beim Import vollständig sind. Ich dachte, ich wäre durch damit. Das Prinzip mit den internen Variablen versteh ich nun wirklich nicht, weil ich ja quasi angegeben habe, welches Item wieviel Punkte erhält. Mir ist bewusst, dass put dafür Sorgen soll alle Daten zu speichern, ich weiß nur nicht wie ich das gerade hinbekommen soll, wenn ich alles schon erstellt habe.

$fragen = [
'TF01' => [1 => 1, 2 => 0, 3 => 0, 4 => -1],   
'TF02' => [1 => -1, 2 => 0, 3 => 0, 4 => 1]
];

$points = 0;
 

foreach ($fragen as $variable => $values) {
  $answer = value($variable);
  if (isset($values[$answer])) {
    $points += $values[$answer];
  }
}
> Das Prinzip mit den internen Variablen versteh ich nun wirklich nicht

Eine interne Variable ist eine (zusätzliche) Spalte im Datensatz.

1 Answer

0 votes
 
Best answer

Ich habe jetzt 12 interne variablen für 24 Teilfragen angelegt.
von IV01_01 bis IV01_02.
Wäre das dann jetzt so korrekt?

$fragen = [ 'TF01' => [1 => 1, 2 => 0, 3 => 0, 4 => -1], 'TF02' => [1 => -1, 2 => 0, 3 => 0, 4 => 1] ];

$points = 0;

foreach ($fragen as $variable => $values) {
$answer = value($variable);
if (isset($values[$answer])) {

$points += $values[$answer];

}
}

put('IV01_01', $points);

Heißt es, dass ich dann die jeweiligen Punkte der ersten beiden Teilfragen von den Teilnehmern bei SPSS dann unter der Spalte IV01_01 sehe?

by s085041 (225 points)
selected by s085041
Wenn Sie die Inhalte innerhalb der Klammer mit Leerzeichen einrücken, dann wird die Struktur klarer.
Ich hab Ihren PHP Code übernommen.

Ich habe zusätzlich html('<p>Sie haben '.$points.' Punkte erzielt.</p>');eingefügt, um zu schauen, ob er die Punktewerte richtig anzeigt. Mit diesem Code funktioniert das aber nicht. Ich vermute, dass er die Punktewerte überschreibt. Am Ende hat er nur 2 Punkte gezählt. Denke das funktioniert mit dem PHP Code in Kombination wahrscheinlich nicht oder?
Ja ich werde das nochmals einrücken. Meine Frage war, ob vor Zeile 51 nur eine eckige Klammer kommt oder eine eckige Klammer mit Komma ( ],)?
Nach Abschluss dieses Elements kommt kein weiteres im (äußeren) Array, deshalb eigentlich kein Komma. PHP ignoriert aber überflüssige Kommata am Ende von Arrays - insofern stört es auch nicht.

> Denke das funktioniert mit dem PHP Code in Kombination wahrscheinlich nicht oder?

Der PHP-Code zähle auf einen Rutsch alle Teilfragen aus. Sie müssten also etwas weiter oben etwas einfügen:

  put($intVar, $points);
  html('<p>Es wurden für '.$intVar.' '.$points.' Punkte erzielt.</p>');
  $sum+= $points;

Diese Information sehen Sie aber auch, wenn Sie rechts oben einfach die Debug-Information aufklappen: https://www.soscisurvey.de/help/doku.php/de:create:debugging
ahhh Danke, das vereinfacht einiges
...