0 votes
in SoSci Survey (dt.) by s126578 (120 points)

Liebes SoSciSurvey Team,

ich habe 4 Zufallsgeneratoren angelegt mit Gleichverteilter Ziehung (ohne Zurücklegen), den Werten 1 bis 9 und der Anzahl Zettel pro Interview von 9 Zetteln.

Diese Zufallsgeneratoren haben die Kennung CO05 bis CO08.

Mit folgendem Code möchte ich sie ansprechen:

if (value('CO04_02')==1)  {
put('CO04_04', value('CO05x'.'0'.value('CO03_02')));
put('CO03_02', value('CO03_02')+1);} 

if (value('CO04_02')==2)  {
put('CO04_04', value('CO06x'.'0'.value('CO03_03')));
put('CO03_03', value('CO03_03')+1);} 

if (value('CO04_02')==3)  {
put('CO04_04', value('CO07x'.'0'.value('CO03_04')));
put('CO03_04', value('CO03_04')+1);} 

if (value('CO04_02')==4)  {
put('CO04_04', value('CO08x'.'0'.value('CO03_05')));
put('CO03_05', value('CO03_05')+1);} 

Daraufhin wirft mir das Questionnaire den folgenden Fehler aus:

"The variable CO05x01 has not been asked on a previous page during this interview. Therefore value() cannot determine any answer, yet."

Dies trifft auch auf alle anderen Zufallsgeneratoren und Anzahl der Ziehungen zu.

Weiter oben benutze ich einen ähnlichen Zufallsgenerator mit 36 Zetteln, der keinen Fehler auslöst.

Ich weiß, dass es einfachere Möglichkeiten für den Counter gibt, aber jetzt habe ich es nunmal so gelöst. Außerdem habe ich versucht, die Values der Zufallsgeneratoren vorher auf eine Temporäre Variable zu legen, was leider kein anderes Ergebnis zeigte.
Die Counter unter CO03_02 bis CO03_05 werden auf der Seite vorher auf 1 gesetzt.

Ich würde mich wirklich freuen, wenn Sie mir bei diesem Problem helfen könnten.

Mit freundlichen Grüßen,
Paul Heineck

P.s. if you would like to receive this message in English, just tell me and I write it once again.

by SoSci Survey (305k points)
Könnten Sie die Idee hinter dem Aufbau vielleicht kurz beschreiben? Es macht mich stutzig, dass Sie 9 Zettel haben und auch 9 Zettel pro Interview ziehen - das kann man mit einem Zufallsgenerator schon machen, aber u.U. ist das nicht die ideale Lösung.

> P.s. if you would like to receive this message in English, just tell me and I write it once again.

Wir sitzen in München - da ist deutsch schon okay ;)

Ach ja: Die Fehlermeldung tritt vermutlich auf, weil Sie den entsprechende Zufallsgenerator nicht in die Seite gezogen oder (!) per question() ausgeführt haben. Aber ich empfehle dennoch, erstmal die Sinnhaftigkeit des Codes zu diskutieren.
by s126578 (120 points)
Vielen dank für die schnelle Antwort.

Das Problem ist eigentlich gelöst. Der dumme Fehler, den Zufallsgenerator nicht auf die Seite zu schieben, unterläuft auch nur Sonntag abends ^^
Sie haben damit meinen Tag und meine Online-Erhebung gerettet.

Ich kann mir gut vorstellen, dass meine Lösung mit dem Zufallsgenerator nicht ideal ist, aber sie funktioniert bisher. Die Idee hinter dem Code ist, dass ich unter 4 Bedingungen je Bedingung 9 Bilder zeigen möchte, die sich nicht wiederholen. Insgesamt sollen so 36 unterschiedliche Bilder angezeigt werden.
Somit soll der Zufallsgenerator 9 mal aus der Liste von 9 Zetteln ziehen, spuckt mir die Zahlen von 1-9 (oder direkt den Pfad zu den Bildern) in zufälliger Reihenfolge aus.

Wenn ich das richtig verstanden habe, funktioniert das dann bei jedem Probanden so, dass er 4x9 Zettel randomisiert ziehen kann und dass sich die Probanden nicht gegenseitig beeinflussen, oder?

Gibt es eine leichtere Variante Zufallszahlen von 1-9 ohne zurücklegen zu generieren? Normalerweise programmiere ich in Python, weshalb ich nicht alle php Befehle kenne. Ein Array zu erstellen, durchzuwürfeln und die erste Ziffer zu ziehen und zu löschen könnte ich in Python ziemlich schnell umsetzen.

Mit vielen Grüßen,
Paul Heineck

1 Answer

0 votes
by SoSci Survey (305k points)

Gibt es eine leichtere Variante Zufallszahlen von 1-9 ohne zurücklegen zu generieren?

Klassisch würde man ein Array erstellen und dann mittels shuffle() mischen.

Meine Sorge gilt auch weniger der korrekte Funktion als Ihrer Datenstruktur. Und zwar befürchte ich, dass Sie in Frage 1 mal die (z.B.) Bewertung von Stimulus 7 haben, mal jene von Stimulus 2. Deshalb meine dringende Empfehlung, dass Sie nicht nur die Stimuli, sondern auch die dazu angezeigten Fragen (sofern es welche gibt) mit-rotieren.

Falls Sie das ohneschon schon gemacht haben ... der Zufallsgenerator kann auch für Ihren Einsatzzweck verwendet werden. Nur ist es eigentlich nicht der Zweck, für welchen er ausgelegt wurde. Denn in Ihrem Fall müssen die Ziehungen ja überhaupt nicht zwischen unterschiedlichen Interviews ausgeglichen werden.

by s126578 (120 points)
Vielen Dank,

dann benutze ich beim nächsten mal Arrays und shuffle().

Die Fragen werden mit rotiert/randomisiert, sollte also kein Problem sein :) Vielen Dank für Ihre Sorge. Ich habe den Zufallsgenerator nur verwendet, weil er einigermaßen für meine Zwecke dienlich war und ich nicht wusste, wie SosciSurvey und PHP interagieren. Jetzt bin ich um einiges schlauer.

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

...