Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Kombination von Bedingungen und Zufall

  • Alina2
  • Alina2's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 months 3 weeks ago #254040 by Alina2
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: [siehe rechts unten auf Ihrem LimeSurvey-Verwaltungsbildschirm]
Eigener Server oder LimeSurvey-Cloud:
Genutzte Designvorlage:
==================
[Schreiben Sie hier Ihre Nachricht]Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 5.6.26
Eigener Server oder LimeSurvey-Cloud: von der Universität denke ich? 
Genutzte Designvorlage: Erben (studierende)
==================
Guten Tag, 
ich erstelle derzeit meine Umfrage für meine Abschlussarbeit. Hierbei startet die Umfrage mit einer Vertrautheitsfrage zum Thema der Umfrage (Markenrelevanz) in Form einer "Mehrfachauswahl" (mit 2 Antwortoptionen; "keine Auswahl" ist deaktiviert, keine Pflichtfrage). 
Hierbei können beide Antworten, oder jeweils eine Antwort ausgewählt werden. Basierend darauf wird bei Antwort 1 die Fragengruppe 1 und bei Antwort 2 die Fragengruppe 2 angezeigt. Das habe ich Beispielsweise auf Fragegruppenebene folgend gelöst: 
G1Q1_1 == "Y" and count(G1Q1_1, G1Q1_2) == 1G1Q1_2 == "Y" and count(G1Q1_1, G1Q1_2) == 1

Bei der Auswahl beider Antwortoptionen soll allerdings per Zufall entweder Fragengruppe 1 oder Fragengruppe 2 angezeigt werden. 
Das habe ich nur hinbekommen, indem in eine neue Fragengruppe erstellt habe (sozusagen Kopie) mit den identischen Fragen aus beiden Gruppen vereint und da eine "Gleichung" zu Generierung einer Zufallszahl eingebaut habe. 
Bedingung der neuen Fragegruppe: G1Q1_1 == "Y" AND G1Q1_2 == "Y"
Gleichungsfrage für Zufallszahl in dieser Gruppe: if(is_empty(Gleichung), rand(1, 2), Gleichung)
und dann bei den Fragen jeweils
"Gleichung == 1" oder "Gleichung == 2" als Bedingung. 

Grundlegend funktioniert es so, allerdings weiß ich nicht ob diese Vorgehensweise für die spätere Auswertung problematisch wird - da ich ja die Fragen dupliziere? 
Gibt es da eine andere Möglichkeit, um das "Zufalls"-Thema in die ersten beiden Fragegruppen zu integrieren? 

Vielen lieben Dank im Voraus und beste Grüße! 

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 months 3 weeks ago - 3 months 3 weeks ago #254041 by Joffm
Replied by Joffm on topic Kombination von Bedingungen und Zufall
Hallo, Alina,

(mit 2 Antwortoptionen; "keine Auswahl" ist deaktiviert, keine Pflichtfrage). 

Was machst Du denn, wenn ein Teilnehmer dann nichts auswählt?
Soll heißen: Mach eine Pflichtfr5age daraus mit der exklusiven Teilfrage "keine davon".

Gut, zur Frage:
Es ist ja alles richtig, was Du machst; nur hast Du nicht bis zum Ende gedacht.
Wann wird die erste der beiden Gruppen gezeigt?
Wenn
  • entweder die Anzahl der gewählten Optionen gleich "1" ist und Q1_1 =="Y" ist
  • oder  die Anzahl der gewählten Optionen ungleich "1" ist und die Zufallszahl gleich "1"
Und genau das schreibst Du als Bedingung (ich habe hier die "that"-Variable benutzt, um es kürzer zu machen., siehe Handbuch)
1. Fragegruppe: (Q1_1=="Y" and count(that.Q1.NAOK)==1) OR (eqRandom==1 and count(that.Q1.NAOK)!=1)
2. Fragegruppe: (Q1_2=="Y" and count(that.Q1.NAOK)==1) OR (eqRandom==2 and count(that.Q1.NAOK)!=1)

Also erzeugst Du die Zufallszahl direkt am Anfang, ob sie nun benötigt wird oder nicht.

Hier zwei Texctanzeige-Fragen mit der Anzeige, was passiert ist.
Einfach mit dem Fragetext
In Frage Q1 wurde gewählt: {list(that.Q1.shown)}<br>
Die Zufallszahl ist {eqRandom}. {if(count(that.Q1)==1,"Diese ist in diesem Falle irrelevant","Da beide Optionen gewählt wurden, wird die Zufallszahl berücksichtigt")}






Natürlich kannst Du auch andersherum arbeiten, nämlich alles in die Erzeugung der Zufallszahl ziehen.

Zum Beispiel
{if(count(that.Q1.NAOK)==2,rand(1,2),if(Q1_1=="Y",1,if(Q1_2=="Y",2,3)))}
Logik ist klar:
Wenn die Anzahl gleich "2" ist, gibt zufällig "1" oder "2" zurück, ansonsten Wenn Option 1 gewählt wurde, gib "1" zurück, ansonsten wenn Option 2 gewählt wurd, gib "2" zurück, und wenn alles noch nicht zutraf, gib "3" zurück.
Ein einfaches verschachteltes IF.

Hier wird angenommen, dass es die exklusive Option "3" (keines davon") gibt, welche dann als Ergebnis 3 liefert, und also keine der beiden Gruppen anzeigt.
Dann reduziert sich die Bedingung der Gruppen auf
1. Fragegruppe: eqRandom==1
2. Fragegruppe: eqRandom==2

Zum Schluss:
Du siehst, ich habe die Variable "eqRandom" genannt.
1. Aus alter Programmiergewohnheit beginne ich mit dem Typ der Variablen (hier "eq" für Equation)
2. Halte ich diese Benennung "Gleichung" für ungünstig; es ist eben keine Gleichung, sondern eine Zufallszahl.
(Obwohl die Tutorials von Paul Borsdorf - daher stammt dies wohl - ansonsten super gut sind)

Bis dann
Joffm

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 months 3 weeks ago by Joffm.

Please Log in to join the conversation.

  • Alina2
  • Alina2's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 months 3 weeks ago #254125 by Alina2
Replied by Alina2 on topic Kombination von Bedingungen und Zufall
Vielen lieben Dank für die Hilfe - es hat alles geklappt!

Liebe Grüße,
Alina

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose