If-then-Bedingung im Expression Manager scheint nicht zu funktionieren

More
6 months 1 week ago #168181 by fonte
fonte created the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Hallo,
ich versuche seit Tagen eine Matrix-Tabelle (flexible mit Checkboxen) auszuwerten.
Weil ich dabei Bedingungen abfragen muss, verwende ich den Expression Manager.
Aber schon bei der ersten If-then–Abfrage scheitere ich grandios, ohne dass ich auch nur ansatzweise eine Erklärung dafür habe.
So sieht die Abfrage aus, mit der ich die Antworten der ersten Zeile der Matrix überprüfen will:
(pluspunkt wurde zuvor auf '1' gesetzt, was auch funktioniert)

{if(q5_SQ001_A1.shown == '1', 'ok', pluspunkt eq 0)}
{if(q5_SQ001_A2.shown == '1', 'ok', pluspunkt eq 0)}
{if(q5_SQ001_A3.shown == '1', 'ok', pluspunkt eq 0)}
{if(q5_SQ001_A4.shown != '1', 'ok', pluspunkt eq 0)}
{if(q5_SQ001_A5.shown == "", 'ok', pluspunkt eq 0)}
{if(q5_SQ001_A6.shown == "", 'ok', pluspunkt eq 0)}
{if(q5_SQ001_A7.shown == "", 'ok', pluspunkt eq 0)}

Das Beispiel habe ich als 'WortartenTabellemitPunktenEM1.lss' hochgeladen
Ich teste die Umfrage lokal mit Uwamp,
LimeSurvey Version 3.7.1+180424
Auch die Version 3.6.1 zeigte das gleiche Verhalten.

Was mir dabei auffällt ist, dass die true-Bedingung sauber abläuft,
wenn also alles so eingegeben wird, wie in der Bedingung genannt wird.
Sobald aber die Bedingung false ist, wird der Befehl nicht ausgeführt/ignoriert.
Der Variablen pluspunkt wird dann nicht der neue Wert 0 zugewiesen, sondern bleibt bei 1.
Ich habe so ziemlich alle Schreibweisen durchprobiert, die Syntax wird vom EM auch akzeptiert.
Die Variablen scheinen auch gültig zu sein.
Für jeden Hinweis bin ich dankbar.
fonte
Attachments:

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168183 by holch
holch replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Was soll denn "pluspunkt eq 0" sein?

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168186 by fonte
fonte replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Hallo Holch,
habe im Manual gesehen, dass eq ein Operator ist, der für das Gleichheitszeichen stehen kann.
pluspunkt eq 0 sollte demnach gleichbedeutend sein mit pluspunkt = 0
Bin was EM betrifft, ein totaler Anfänger. Vielleicht ist eine solche Variablenzuweisung ja gar nicht möglich in LS.
Das Gleichheitszeichen habe ich aber auch ausprobiert.
fonte

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168187 by holch
holch replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Ich verstehe dein ganzes Konzept nicht. Die erste Frage scheint mir schon falsch konzipiert, weil ja jedes Wort nur einem Worttyp zugeordnet werden kann, warum da also eine Frage mit Checkboxen verwendet wird ist mir schleierhaft.

Dann kann ich die anderen Fragen nicht wirklich zuordnen. Was sollen diese Fragen denn alle machen?

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168188 by fonte
fonte replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Das Konzept ist tatsächlich ganz anders als bei einer typischen Umfrage,
es ist eine Art assessment, eine Lernkontrolle. Die Auswertung soll dann an den Testteilnehmer einen Punkt vergeben, wenn er eine ganze Zeile in der Matrix richtig beantwortet hat, nur dann bekommt er einen Punkt.
Also einen Punkt für die ganze Zeile, nicht für jedes richtige Kreuz in der Checkbox.
Wenn er einen Fehler in der Zeile macht, ist der Punkt weg.
Die Variable pluspunkt wird dann auf 0 gesetzt. In der Rechnung unter der Frage kommt dann kein Punkt zu den Gesamtpunkten hinzu.
Das Ganze ist wahrscheinlich auch etwas unverständlich, weil hier nur die erste Zeile vorgestellt wird.
Das hat aber schon nicht richtig funktioniert. Immerhin ist die Punktzahl richtig, wenn die ersten drei Checkboxen richtigerweise ausgewählt wurden.

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168189 by holch
holch replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Ja, aber im Moment erlaubst du den Teilnehmern z.B. für jedes Wort jeden Worttyp auzuwählen, also auch Mehrfachauswahl. Und das kann es ja nicht sein. Jedes Wort kann genau ein Worttyp sein. Der ist entweder richtig oder falsch. Der richtige Fragentyp wäre Array oder Array by column gewesen, wenn du die Achsen so belassen willst, wie sie im Moment sind (was ich auch nicht sehr gelungen finde). Meiner Meinung nach sind ja die Worttypen die Antwortoptionen und die Worte sind die Subquestions. Das solltest du also nochmal überdenken.

Das andere Konzept habe ich jetzt besser verstanden. Werde mir mal Gedanken machen, wie man das sinnvoll umsetzen kann.

Einmal stört mich schon das "Shown", denn das bezieht sich ja auf die Antwortoption. Ich denke da ist schon mal der erste fehler. Ich glaube auch das eq ist hier die falsche Wahl. Werde mal ein bisschen experimentieren.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168190 by fonte
fonte replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Zur Erläuterung eine Grafik:
sie zeigt, dass für jede Wortart durchaus mehrere Antwortmöglichkeiten zutreffend sind.
Deshalb die Multiple-Choice Matrix.
Den Punkt gibt es, wie gesagt, nur für die ganze Zeile, wenn alle Checkboxen richtig gesetzt sind.
fonte
Attachments:

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago - 6 months 1 week ago #168191 by holch
holch replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Richtig, jede Wortart kann mehrere Worte haben, aber hier ein Beispiel das mit deinem Ansatz möglich ist, aber leider halt in Wirklichkeit unmöglich. Deshalb mein Vorschlag mit dem switchen der Achsen oder eben Array by Column.


Hier kann die Zeile zwar richtig sein, aber insgesamt ist die Antwort natürlich falsch.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds
Attachments:
Last Edit: 6 months 1 week ago by holch.

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168193 by holch
holch replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
In jeder Spalte sollte doch nur EINE Antwort möglich sein, oder? Dann Array by column.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168195 by Joffm
Joffm replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Hallo,

habe im Manual gesehen, dass eq ein Operator ist, der für das Gleichheitszeichen stehen kann.
pluspunkt eq 0 sollte demnach gleichbedeutend sein mit pluspunkt = 0


Du bist anscheinend noch nicht ganz vertraut mit dem Unterschied zwischen einem Vergleich und einer Zuweisung.

"A eq B" ist ein Vergleich; es wird geprüft, ob A gleich B ist. Das wird in LS auch geschrieben "A==B".

Hingegen ist "A=B" eine Zuweisung. Der Variablen "A" wird der Wert "B" zugewiesen" wie dann richtig "pluspunkt=0".


Deine erste Funktion könnte man so interpretieren:
{if(q5_SQ001_A1.shown == '1', 'ok', pluspunkt eq 0)}

Wenn q5_SQ001_A1 gleich 1 ist, dann hat die Gleichung den Wert "ok",
wenn nicht, hat die Gleichung den Wert "false" (da pluspunkt anfangs den Wert 1 hat, ist der Vergleich "pluspunkt eq 0" immer falsch.)

Nur noch einmal zur Erklärung.

Zu Deinem Design hat holch ja schon etwas gesagt.

Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: fonte

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168196 by fonte
fonte replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren

In jeder Spalte sollte doch nur EINE Antwort möglich sein, oder? Dann Array by column.

Das wäre natürlich eine Möglichkeit, aber der Nachteil wäre eben, dass dann die Ratequote höher ist.
Wenn man drei Checkboxen richtig ankreuzen muss, um einen Punkt zu kriegen, ist Raten nicht so einfach.
Ok, bei 7 Optionen kann man auch Array by column nehmen. Ich plane das aber in zukunft mit weniger Checkboxen.

Dein zweiter Vorschlag

mit dem switchen der Achsen

werde ich mir mal genauer durch den Kopf gehen lassen.
Wobei die Frage ist, ob dann die If-Bedingungen funktionieren. Ich glaube nämlich, dass es letztlich daran hakt.
Könnte es denn möglich sein, dass ich die Variablen falsch angelegt habe? Haben wir es womöglich mit einem Bug zu tun? (Ich weiß, dass das etwas vermessen klingt, wenn ein EM-Anfänger so etwas vermutet.)

Jedenfalls danke ich dir erstmal sehr herzlich für deine Vorschläge. Wenn du herausfindest, wo der Knackepunkt ist, lass es mich bitte wissen,
fonte

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168198 by fonte
fonte replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren

Wenn q5_SQ001_A1 gleich 1 ist, dann hat die Gleichung den Wert "ok",
wenn nicht, hat die Gleichung den Wert "false" (da pluspunkt anfangs den Wert 1 hat, ist der Vergleich "pluspunkt eq 0" immer falsch.)


Das ist genau der Punkt:
Ich habe ja vorher beim endlosen Experimentieren auch diese Variante ausprobiert:
"pluspunkt = 0"
Es sollte ja auch kein Vergleich sein, sondern ausdrücklich eine Zuweisung. Und genau das funktioniert nicht in meinen If-Anweisungen.

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168200 by holch
holch replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren

Das wäre natürlich eine Möglichkeit, aber der Nachteil wäre eben, dass dann die Ratequote höher ist.


Wieso sollte die Ratequote höher sein? Nimm jedes Wort wie eine eigene Frage (alles andere ergibt ja keinen Sinn) und wähle dann aus, welchem worttyp das Wort zugehörig ist. Der einzig sinnvolle Ansatz ist meiner Meinung, dass man nur einen Worttyp pro Wort wählen kann. Der Teilnehmer muss sich Entscheiden ob "Hund" nun ein Nomen, ein Verb oder ein Adjektiv ist. Klar, wenn du Mehrfachantworten zulässt erhöht sich zwar die potenzielle Fehlerquote, aber deswegen auf mehr/weniger Wissen zu schliessen halte ich für gewagt.

Es mag vereinzelt Worte geben, die mehr als einem Worttyp angehören können, mir fällt aber gerade keines ein. Und wenn, sollte durch Gross- und Kleinschreibung normalerweise klar sein, welchen von den Worttypen das Wort angehört.

Werde mir das mal ansehen.

I'm not a LimeSurvey GmbH member. I answer at the LimeSurvey forum in my spare time. No support via private message.
Some helpful links: Manual (EN) | Question Types | Workarounds
The following user(s) said Thank You: fonte

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago #168201 by fonte
fonte replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Danke euch für die vielen wertvollen Hinweise,
ich werde mir darauf fußend, das ganze Konzept noch mal neu durchdenken.
fonte

Please Log in or Create an account to join the conversation.

More
6 months 1 week ago - 6 months 1 week ago #168206 by Joffm
Joffm replied the topic: If-then-Bedingung im Expression Manager scheint nicht zu funktionieren
Hallo,

ich habe einmal - auf Deinem ersten Konzept basierend - die Berechnung korrigiert.

1. Ich habe nicht nur EINE Zahleingabe für die Punktzahl genommen, sondern eine mehrfache Zahleingabe - für jede Zeile eine. (Erschien mir leichter)
Hat den Namen "punkte. Jede Teilfrage "SQ00x" für eine Zeile Deiner Matrix

2. Dann wird losgerechnet: (Ich habe nur die ersten vier Zeilen bearbeitet) Rest analog
{punkte_SQ001=if(q5_SQ001_A1!=1 or q5_SQ001_A2!=1 or q5_SQ001_A3!=1 or q5_SQ001_A4==1 or q5_SQ001_A5==1 or q5_SQ001_A6==1 or q5_SQ001_A7==1,0,1)}

{punkte_SQ002=if(q5_SQ002_A1==1 or q5_SQ002_A2==1 or q5_SQ002_A3==1 or q5_SQ002_A4!=1 or q5_SQ002_A5==1 or q5_SQ002_A6!=1 or q5_SQ002_A7==1,0,1)}

{punkte_SQ003=if(q5_SQ003_A1==1 or q5_SQ003_A2==1 or q5_SQ003_A3==1 or q5_SQ003_A4==1 or q5_SQ003_A5!=1 or q5_SQ003_A6==1 or q5_SQ003_A7!=1,0,1)}

{punkte_SQ004=if(q5_SQ004_A1==1 or q5_SQ004_A2==1 or q5_SQ004_A3==1 or q5_SQ004_A4==1 or q5_SQ004_A5!=1 or q5_SQ004_A6==1 or q5_SQ004_A7!=1,0,1)}

Ist eigentlich klar: Wenn irgendetwas falsch ist, wird in die Zahleingabe eine 0 geschrieben, sonst eine 1.

Auf der Ergebnisseite einfach noch einmal auflisten, Summe bilden für Gesamtergebnis, usw.

Es geht also, obwohl Du am Design noch etwas feilen solltest.

File Attachment:

File Name: limesurvey...3279.lss
File Size:28 KB



Zu "Achsen switchen"
Da die Wortarten ja eine endliche Menge bilden, würde ich diese in die Kopfzeile schreiben; dann hast Du für die zu testenden Wörter beliebig viel Platz in der Senkrechten.
Und mir ist es auch plausibler, wenn ich Zeile für Zeile durchgehe und jeweils entscheiden muss:
"Hund" ist ein Nomen, oder ein Verb, oder doch ein Artikel, oder was denn?
Und danach: "Spielen": Hm, ein Nomen, ein Verb???

Viel Erfolg
Joffm

P.S.
Noch etwas zu Einfach- oder Mehrfachantworten.

Sie fahren mit schnellen Motorrädern – aber fahren sie auch schnell mit den Motorrädern? An solchen Unterschieden ist schon mancher Schüler im Deutschunterricht verzweifelt. Dass Adverb und Adjektiv sich aber auch so verdammt ähnlich sind

Wichtig ist ihre Funktion im Satz: Ein Adjektiv beschreibt Substantive wie Personen, Dinge oder Begriffe. Die Motorräder im ersten Satz dieses Textes werden mit dem Adjektiv „schnell“ beschrieben. Ein Adverb dagegen beschreibt die Umstände eines Geschehens, etwa Ort und Zeit oder Art und Weise. „Draußen“ ist so ein Adverb, ebenso wie „heute“ oder „besonders“.

Schwierig wird es erst, wenn ein Adjektiv adverbial gebraucht wird – wie im zweiten Teil des Beispielsatzes: Dort beschreibt das Adjektiv „schnell“ nicht mehr den Gegenstand Motorrad, sondern den Umstand, wie damit gefahren wird. Trotzdem bleibt „schnell“ in Sachen Wortart ein Adjektiv.

Wenn man also diese adverbiale Benutzung des Adjektivs weglässt, dann sollte es eigentlich nicht notwendig sein, Mehrfachantworten zuzulassen.
Und dann haben wir das alles voll krass gelöst. Welche Wortarten sind das denn?
Sorry, ich konnte es nicht lassen. ;)


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:
Last Edit: 6 months 1 week ago by Joffm.

Please Log in or Create an account to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now
Join our Newsletter!