Welcome to the LimeSurvey Community Forum

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

Relevanz-Gleichung wird missachtet

  • StudPsy
  • StudPsy's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 years 4 months ago #208353 by StudPsy
Relevanz-Gleichung wird missachtet was created by StudPsy
Hallo Community!

Ich arbeite mit der LS Version 3.22.24+200630 und hätte eine Frage bezüglich Relevanz-Gleichung.

Ich hatte im Vorhinein eine Relevanz-Gleichung erstellt, um deutschen und österreichischen Teilnehmer*innen verschiedene Items zu präsentieren (aufgrund Gesetzeslage). Das hat auch funktioniert.

Da ich aber 3 verschiedene Bedingungen habe, und auch nach Bedingung trennen muss, hab ich eine verstecke Frage als "Gleichung" mit {rand(1,3)} und "Randomisierung == 1" etc. mithilfe dieser Erklärung ( bit.ly/2KkP296 ) hinzugefügt.

Nun wird aber meine erste Relevanz-Gleichung (nach Ländern getrennt) komplett missachtet, und alle Items der Bedingung, unabhängig ob deutsche oder österreichische Gesetzeslage präsentiert.


Die Zuteilung nach Gesetz erfolgt durch Beantwortung einer Pflichtfrage, die Zuteilung zur Bedingung durch eine randomisierte "Gleichung". Wie kann ich es schaffen, dass beide Bedingungen beachtet werden?


The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 years 4 months ago #208359 by Joffm
Replied by Joffm on topic Relevanz-Gleichung wird missachtet
Hallo,
zunächst die kleine Gemeinheit: Wann wird Boolsche Algebra in der Schule durchgenommen? ;)

Gut, ich denke, Du hast nicht ganz verstanden, was diese sogenannte Relevanzgleichung bedeutet.
Diese ist nichts anderes als ein logischer Term, der den boolschen Wert WAHR oder FALSCH hat.
Steht dort also etwas, was zu WAHR entwickelt wird, wird die Frage/Gruppe angezeigt, bei FALSCH nicht.
Wenn dort also steht "random==1" wird die Frage eben angezeigt, wenn in der Funktion vorher die Variable "random" den Wert "1" bekommen hat, und damit der Term WAHR ist.

In diesem Fall willst Du zwei Terme verknüpfen.
Um Terme zu verknüpfen, werden eben die entsprechenden Verknüpfungsoperatoren benutzt.
In der Schule war das so etwas:
A ∧ B : A UND B
A ∨ B : A ODER B
¬   A : NICHT A
usw.

In Programmiersprachen benutzt man andere Symbole, die eben besser über die Tastatur erreichbar sind
A && B , oder A AND B
A || B, oder A OR B
!A
Findest Du im Handbuch hier:
manual.limesurvey.org/ExpressionScript_-_Presentation#Operators

Langer Rede kurzer Sinn:
Du willst doch, dass beide Terme gleichzeitig WAHR sind, Law gleich "E2" UND Randomisierung gleich 1.
Also muss Deine Relevanzgleichung so aussehen:
Law=="L2" AND Randomisierung==1 ("L2" in Anführung, da es ein Text ist, die 1 nicht unbedingt, da es eine Zahl ist)

Jetzt zwei weitere Hinweise:
1. Die Funktion "rand(1,3)" ist zwar richtig, aber in dieser Form nicht empfehlenswert.
Warum? Wie zum Beispiel auch die Zufallszahl in EXCEL ändert sie sich bei jedem Aufruf der Seite.
Dies kann Effekte haben, wenn durch Zurückgehen im Fragebogen die Seite, auf der sich die Erzeugung der Zufallszahl ist, erneut aufgrufen wird, oder wenn die Erzeugung der Zufallszahl mit anderen Fragen in einer Gruppe ist und "Gruppe für Gruppe" dargestellt wird - dann ändert sie sich bei jedem Klick in den anderen Fragen.
Um dies zu verhindern, benutzen wir folgendes Konstrukt:
{if(is_empty(Randomisierung),rand(1,3),Randomisierung)}
Bedeutung: WENN die Variable "Randomisierung" noch leer ist, bekommt sie den Zufallswert; WENN NICHT bleibt sie, wie sie ist.

2. Da es Dir bei der Auswertung sicherlich um Gruppenvergleiche geht, ist es immer besser, die Daten zu einem Item in einer Spalte zu haben (t-Test, usw).
Wenn es also nur um unterschiedliche Texte geht, ist es nicht notwendig dazu verschiedene Fragen anzulegen.
Hier wäre auch ein sogenanntes Micro-Tayloring zu überlegen, also ein Einblenden des gewünschten Textes mithilfe eines IF-Statements.
Zum Beispiel (hier sogar ein bisschen verschachtelt)
{if(Law=="E1",Hier ist der Text, der erscheint, wenn in der Variablen Law der Wert E1 angeklickt wurde",if(Law=="E2","Hier der Text für E2","Und hier der Text für alles andere"))}
Dann sehen die Teilnehmer*außen, die "E1" geklickt haben, den einen Text, diejenigen Teilnehmer, die "E2" geklickt haben, den anderen, usw.
Als Beispiel wird immer gerne dieses genommen.
manual.limesurvey.org/ExpressionScript_H...7BMrs.7D_Smith....22

Um dies im Einzelfall zu entscheiden, müssten wir einen Prototypen der Studie sehen.

Viel Erfolg
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: holch
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose