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 zusammen,

ich möchte gerne in meinem Fragebogen aus einem Set an 60 Bilder pro Teilnehmer zufällig 40 Bilder per Zufallsgenerator ziehen, welche ich dann ohne Text auf einer Seite über einen loop anzeige.
Das Thema bei den Bilder ist, dass ich Bilder von 60 Personen habe und von jeder Person habe ich ein Bild mit glücklichem, traurigem und neutralem Gesichtsausdruck. In Runde 1 möchte ich nun 15 Personen in glücklich und 15 Personen in traurig anzeigen (gelabelt sind die Bilder mit Zahl_h für happy, Zahl_s für sad und Zahl_n für neutral). Das habe ich bereits auf einer Seite wie folgt getan:

>// Abfolge der Bilder rotieren
if (!isset($order)) {
  $order = [];
  for ($i=1; $i<=30; $i++) {
$order[] = $i;
  }
  shuffle($order);
  registerVariable($order);
}

>// Varianten der Bilder fix definieren
$variante = [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2];
foreach ($variante as $i => $var) 

>// Die ersten 30 Bilder anzeigen
$i = loopPage(30);
// Aber in der Reihenfolge wie in $order gespeichert
$num = $order[$i];
$basis = value(id('ZG01', $num), 'label');
if ($variante[$num - 1] == 1) {
  $bild = $basis.'_h.jpg';
} else {
  $bild = $basis.'_s.jpg';
}
html('<div style="margin: 3em; text-align: center">
  <img src="'.$bild.'" alt="" /; style="max-width: 50%">
  </div>');

Nun möchte ich auf der zweiten Seite, dass alle 30 Bilder aus Runde 1 und die restlichen 10, die noch aus dem Zufallsgenerator übrig sind (also insgesamt jetzt 40) in "Gesichtsausdruck Neutral" wieder randomisiert anzeigen, mit der Frage darunter "Haben Sie diese Person schoneinmal gesehen". Hierbei habe ich noch einige Fehlermeldungen:

>if(!isset($bilder2)){
$bilder2=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40);
shuffle($bilder2);
registerVariable($bilder2);
}

>for ($i=0; $i<count($bilder2); $i++) {
$id = id('IV02', $i + 1);
put($id, value(id('ZG01', $bilder2[$i])));
}

>$i = loopPage(40);
$num = $bilder2[$i];
$basis = value(id('ZG01', $num), 'label');
$bild = $basis.'_n.jpg';
html('<div style="margin: 3em; text-align: center">
<img src="'.$bild.'" alt="" /; style="max-width: 50%">
</div>');
question(id('RE', $i+1));'

Das Thema ist, dass ich danach in meinem Datensatz wissen muss, welche Bilder die Personen wiedererkannt haben. Ich habe keine Ahnung, wie ich das umsetzen kann.

Und zuguterletzt würde ich den Probanden auch gerne eine Rückmeldung geben, wie viele Personen sie richtig wiedererkannt haben. Auch dazu habe ich noch keine Idee...

Ich bin sehr dankbar für Hilfe!

in SoSci Survey (dt.) by s095605 (350 points)
edited by SoSci Survey
Sie können Code in Ihrer Frage mit dem Knopf {} als Code formatieren :)

1 Answer

0 votes

Hierbei habe ich noch einige Fehlermeldungen:

Wenn Sie den Wortlaut der Fehlermeldungen posten, können wir da gerne Tipps geben.

Das Thema ist, dass ich danach in meinem Datensatz wissen muss, welche Bilder die Personen wiedererkannt haben.

Wie fragen Sie denn ab, welche Personen man denkt, erkannt zu haben? Sorgen Sie dafür, dass die Antwort zu Bild 1 immer in Variable 1 landet, die Antwort zu Bild 2 in Variable 2 u.s.w. - Sie müssen also nicht nur die Bilder rotieren, sondern auch die Fragen mitnehmen.

Dann ist es in der Auswertung ganz einfach: Sie müssen dann nur noch zusammenzählen, wie häufig in den Variablen 1-30 die "ja" und wie oft in 31-40 die "nein" ausgewählt wurde.

Mit valueSum() oder getItems() können Sie das auch im Fragebogen abzählen, und daraus direkt ein Ergebnis berechnen und anzeigen.

by SoSci Survey (199k points)
...