Welcome to the LimeSurvey Community Forum

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

Syntax-Fehler in versteckter Gleichung für Feedback

More
6 years 4 months ago #160133 by pialu
Hi, ähnlich wie im BMI-Beispiel des Manuals möchte ich aus einer Array-Frage von 1-7 ein Feedback generieren, indem ich mittels einer versteckten Gleichung die Skalierung in Worte fasse (wie ungefähr "Sie haben mit "stimme eher zu" geantwortet. Leider tauchen immer wieder Fehler in der Syntax meiner versteckten Gleichung auf, die mir entweder melden: "Zusätzliches Komma in Funktion" (s. Anhang), oder aber sie umranden das erste if nach geschweifter Klammer rot. Mit ganz viel Ausprobieren, Befolgen der Beispiele und Rumlesen kann ich leider nicht entdecken, woran es liegen könnte. Wäre euch sehr sehr dankbar für ein kleines auf die Sprünge helfen!!!
(LS-Version 2.62.2+170203)
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 years 4 months ago #160135 by Joffm
Hallo, pialu,
ganz schnelle Antwort:
Dein If-Statement stimmt syntaxmäßig nicht.

if(Bedingung,Wahr-Teil,Falsch-Teil).
Du hast beim letzten "if" keinen "Falsch-Teil".
Falls die Frage eine Pflichtfrage ist, kannst Du Dir den letzten Teil "==7" sparen.
Das ist dann ja die einzige Möglichkeit, welche übrigbleibt; also, wenn alle anderen falsch sind.

Irgendwie so:

if(S01_SQ001 == 1, "1 gewählt", if(S01_SQ001 == 2, "2 gewählt", if(S01_SQ001 == 3, "3 gewählt", if(S01_SQ001 == 4, "4 gewählt", "5 gewählt"))))

Bis dann
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
6 years 4 months ago #160138 by pialu
Korrekt! Tausend Dank, Joffm
The topic has been locked.
More
6 years 4 months ago #160139 by pialu
Lieber Joffm,

wie kann es aber sein, dass egal, welchen Wert SM1_SQ001 erhält, als Ergebnis der Gleichung immer das letzte if ("stimme völlig zu") der Gleichung Zustimmung1 rauskommt, wenn ich beide Ergebnisse im nächsten Schritt rückmelden will?
i.S. von: "Sie haben {SM1_SQ001.shown} ({Zustimmung1.shown}) gewählt.".
Also egal ob SM1_SQ001 1,2,3,4,5,6,7 ist, Zustimmung1 ist immer "stimme völlig zu".

Die Reihenfolge der Abfrage ist:
1. Fragegruppe: SM1_SQ001, Zustimmung1
2. Fragegruppe: Das Feedback

Zustimmung1:
if(SM1_SQ001 == 1, '"stimme überhaupt nicht zu"', if(SM1_SQ001 == 2, '"stimme nicht zu"', if(SM1_SQ001 == 3, '"stimme eher nicht zu"', if(SM1_SQ001 == 4, '"weder noch"', if(SM1_SQ001 == 5, '"stimme eher zu"', if(SM1_SQ001 == 6, '"stimme zu"', '"stimme völlig zu"'))))))

Merci much,
Pialu
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 years 4 months ago #160140 by Joffm
Tja, was sollen wir jetzt dazu sagen, wenn Du uns nicht zeigst, was Du zu machen versuchst, sprich Beispiel-Studie (*.lss)
Zunächst würde ich auf ein GIGO-Phänomen tippen ("Garbage in - Garbage out", oder "Mist rein - Mist raus").

Ich habe Deine Gleichung kopiert, meine Matrix angepasst, und es geht.
Siehe angehängtes Beispiel.

Also ist eventuell doch noch irgendwo ein Tippfehler.

File Attachment:

File Name: limesurvey...0-29.lss
File Size:19 KB


Viel Erfolg
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 years 4 months ago #160141 by Joffm
Hallo, pialu,
noch zwei Anmerkugen:
1. Ich gehe bisher davon aus, dass die "1" in "SM1_SQ001 == 1, '"stimme überhaupt nicht zu"'" der Code der Antwortoption ist. Und nicht etwa der Text, während der Code dieses unglückliche "A1", "A2" ist.
Du weißt ja:
Laut Manual:
SyntaxMeaning
QCodean alias for Qcode.code
Qcode.codethe selected response code for the question
Qcode.shownthe dispay value for the question
Also wird SM1_SQ001 mit dem Code verglichen( also evtl: "SM1_SQ001=='A1'"); wolltest Du mit dem Text der Antwortoption vergleichen, müsstest Du SM1_SQ001.shown nehmen.

2. Warum willst Du überhaupt diese Umcodierung machen?
Sieht Deine Matrix so aus`?


Warum nicht so?

Dann kannst Du in einer Folgefrage einfach sagen:
Sie haben ja vorher "{SM1_SQ001.shown}" gewählt.

Aber das musst Du ja besser wissen. Aber aus solchen Gründen ist ein kleines Beispiel (*.lss) immer angebracht.

Bis dann
Joffm

P.S. Warum sagte ich "unglückliches A1, A2"?

Stelle Dir vor, Du möchtest statistische Auswertungen vornehemen.
Deine Antwortoptionen hier sind ja zumindest ordinal skaliert; in der Marktforschung geht man auch oft davon aus, dass sie intervallskaliert sind, und rechnet dann t-Tests, Korrelationen und ähnliches.
Dazu benötigst Du aber eben numerische Werte.
Bei "A1","A2,.. erhälst Du im Export eben nur diese "Texte".
Damit ließen sich dann nur Tests rechnen, die Nominalskalen-Niveau erfordern, z.B. CHI2.
Oder Du musst im Statistikprogramm zunächst umcodieren.
Das ist alles unnötig, wenn man gleich zu Anfang die Codes entsprechend vergibt.

Eins meiner Lieblingsbeispiele ist:
Wie oft gehen Sie ins Kino?
mit den Antwortoptionen:
einmal pro Woche - einmal pro Monat - alle drei Monate - alle sechs Monate - einmal im Jahr - noch seltener
Normalerweise würde man diese 6 Codes von 1-6 durchnumerieren.

Besser ist es aber zu sagen:
50 = einmal pro Woche
12 = einmal pro Monat
4 = alle drei Monate
2 = alle sechs Monate
1 = einmal im Jahr
0 = noch seltener

Dann würde (ohne große Verrenkung) ein simpler Mittelwert schon eine gute Aussage machen: "Wie oft pro Jahr geht man ins Kino?"

Das nur noch so nebenbei.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
6 years 4 months ago #160154 by pialu
Danke! So klappt's :)
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose