- Posts: 2
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Kombination von Bedingungen und Zufall
- Alina2
- Topic Author
- Offline
- New Member
Less
More
4 months 2 weeks ago #254040
by Alina2
Kombination von Bedingungen und Zufall was created 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!
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
- Away
- LimeSurvey Community Team
Less
More
- Posts: 13068
- Thank you received: 4023
4 months 2 weeks ago - 4 months 2 weeks ago #254041
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Kombination von Bedingungen und Zufall
Hallo, Alina,
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
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
Was machst Du denn, wenn ein Teilnehmer dann nichts auswählt?(mit 2 Antwortoptionen; "keine Auswahl" ist deaktiviert, keine Pflichtfrage).
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"
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: 4 months 2 weeks ago by Joffm.
Please Log in to join the conversation.
- Alina2
- Topic Author
- Offline
- New Member
Less
More
- Posts: 2
- Thank you received: 0
4 months 2 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
Liebe Grüße,
Alina
Please Log in to join the conversation.
Moderators: Joffm