Welcome to the LimeSurvey Community Forum

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

max()-Funktion bei DualMatrix

  • Faustus
  • Faustus's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 weeks 5 days ago #267791 by Faustus
max()-Funktion bei DualMatrix was created by Faustus
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 6.5.17+240715
Eigener Server oder LimeSurvey-Cloud: vermutlich LimeSurvey-Cloud, ich nutze das meiner Uni
Genutzte Designvorlage: fruity TwentyThree
==================Hallo liebe LimeSurvey-Community,ich bin relativ neu im Umgang mit LimeSurvey. Einige Probleme konnte ich schon selbst lösen, aber jetzt stehe ich vor einer Herausforderung, bei der ich nicht weiterkomme. Ich habe im Forum nach einer Lösung gesucht, aber keinen passenden Thread gefunden.Ich arbeite an einer Dual-Matrix-Frage. Das Ziel ist, die Angst und das Vermeidungsverhalten in verschiedenen Situationen wie z. B. Wasser, Höhen etc. abzufragen. In der Dual-Matrix können die Teilnehmenden für jede Situation auf einer Skala von 0 bis 3 ihre Angst und Vermeidung angeben.In der nächsten Frage möchte ich nun eine automatische Referenz auf die Situation mit dem höchsten Wert einfügen, z. B.: „Seit wann haben Sie Angst bzw. vermeiden Sie {max(Q1.question)}.“ Ich habe dafür folgenden Code geschrieben, der grundsätzlich funktioniert, aber leider nur den höchsten Wert anzeigt.
Code:
max(SAAD30_AD31_1, SAAD30_AD31_0, SAAD30_AD32_1, SAAD30_AD32_0, SAAD30_AD33_1, SAAD30_AD33_0, SAAD30_AD34_1, SAAD30_AD34_0, SAAD30_AD35_1, SAAD30_AD35_0, SAAD30_AD36_1, SAAD30_AD36_0, SAAD30_AD37_1, SAAD30_AD37_0, SAAD30_AD38_1, SAAD30_AD38_0, SAAD30_AD39_1, SAAD30_AD39_0, SAAD30_AD3101_1, SAAD30_AD3101_0, SAAD30_AD3102_1, SAAD30_AD3102_0, SAAD30_AD311_1, SAAD30_AD311_0)
Das Problem tritt auf, wenn ich hinter jedem Fragecode
Code:
.question
hinzufüge. In diesem Fall wird immer die gleiche Frage angezeigt, unabhängig davon, was tatsächlich ausgewählt wurde. Ich vermute, dass das Fehlen von
Code:
.NAOK
damit zusammenhängen könnte, weil die Frage nicht immer angezeigt wird. Mit
Code:
.question.NAOK
oder
Code:
.NAOK.question
funktioniert es leider auch nicht.Mir ist bewusst, dass es vorkommen kann, dass mehrere Fragen mit dem Wert 3 beantwortet werden. In solchen Fällen ist es für mich in Ordnung, wenn eine beliebige der Situationen mit Wert 3 ausgewählt wird.Habt ihr Tipps oder Ideen, wie ich das Problem lösen kann?

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 weeks 5 days ago #267792 by Joffm
Replied by Joffm on topic max()-Funktion bei DualMatrix
Hallo,
gehen wir einmal alles durch.
Dass Deine erste Funktion nur den höchsten Wert liefert, ist klar, da Du ALLE Zellen in der max-Funktion ansprichst.
Und ".question"?
Wie soll das gehen? Da verstehe ich nicht, was dies bringen soll. Hier ist das Resultat doch ein Text.

Zunächst solltest Du aber erklären, was

die Situation mit dem höchsten Wert

ist.
So, wie ich es verstehe, hat doch jede Situation zwei Werte, den "Angst"-Wert und den "Vermeidungs"-Wert".
Wie berechnest Du daraus den Wert für die Situation, damit Du dann die Situation mit dem höchsten Wert berechnen kannst.

Am besten Du schickst zunächst einmal einen lss Export (meinetwegen nur dieser relevanten Frage).

Bis dann
Joffm

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

  • Faustus
  • Faustus's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 weeks 5 days ago - 3 weeks 5 days ago #267796 by Faustus
Replied by Faustus on topic max()-Funktion bei DualMatrix
Vielen Dank für die schnelle Antwort!

Ich habe die relevanten Fragen angehangen.

Hier ist es Beispielhaft die Dual-Matrix-Frage dargestellt:

Möglichkeit 1 
                                       Angst                 Vermeidung
Geburtstagsfeste            2                         3
Vor Leuten Sprechen     2                         2
Lehrer etwas fragen       1                         1

Möglichkeit 2 

                                       Angst                 Vermeidung
Geburtstagsfeste            2                         2
Vor Leuten Sprechen     3                         2
Lehrer etwas fragen       1                         1

Möglichkeit 3 
                                        Angst               Vermeidung
Geburtstagsfeste            2                        3
Vor Leuten Sprechen     3                       1
Lehrer etwas fragen       1                       1

In der darauf folgenden Frage:

Möglichkeit 1
Hat Ihr Kind die Angst fast jedes Mal, wenn es (hier Situation mit höchsten Wert für Angst oder Vermeidung einfügen Bspw. Geburtstagsfeste [da Angst mit 3 bewertet]) erlebt? 

Möglichkeit 2
Hat Ihr Kind die Angst fast jedes Mal, wenn es (hier Situation mit höchsten Wert für Angst oder Vermeidung einfügen Bspw. Vor Leuten Sprechen [da Vermeidung mit 3 bewertet]) erlebt?

Möglichkeit 3
Hat Ihr Kind die Angst fast jedes Mal, wenn es (hier Situation mit höchsten Wert für Angst oder Vermeidung einfügen Bspw. Geburtstagsfeste OR Vor Leuten Sprechen [da Angst mit 3 bewertet bzw. Vermeidung mit 3 bewertet]) erlebt?

Es muss daher nichts verrechnet werden. Es spielt keine Rolle, ob die höchste Bewertung auf der Angst- oder der Vermeidungsskala liegt. Falls mehrere Antworten die gleiche Höchstbewertung erhalten, ist es ebenfalls unerheblich, welcher Fragetext aus diesen am höchsten bewerteten Antworten eingefügt wird.

vielen Dank nochmal!
Last edit: 3 weeks 5 days ago by Faustus.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 weeks 5 days ago #267797 by Joffm
Replied by Joffm on topic max()-Funktion bei DualMatrix
Hallo,
wir bitten immer um lss Exporte, weder lsq noch lsg.
Begründung:
1. lsq und lsg Exporte sind sprachsensitiv. Man kann solche Dateien nur in eine Umfrage mit derselben Basissprache importieren.
D.h. wir müssen zunächst eine Umfrage anlegen, hoffend die richtige Basissprache getroffen zu haben, dort eine Gruppe erzeugen, um schlussendlich eine lsq-Datei importieren zu können.

2. Die manchmal wichtigen umfrageweiten Einstellungen sind nicht vorhanden.

3. Es macht uns freiwilligen Helfern unnötige Arbeit.

Daher: Kopiere die Umfrage, lösche alles bis auf die für Dein Problem relevanten Fragen und sende dies als lss Export.


So, jetzrt zum Szenario.
Wenn Du nur drei Optionen hast, ist es wohl sehr, sehr wahrscheinlich, dass mehrere mit dem Maximalwert ausgewählt werden.
Daher wird das Procedere im Endeffekt in etwa sein:
Bestimme den Maximalwert max0 (hast Du ja schon, da es für Dich ja unerheblich ist, ob er in der ersten oder zweiten Skala auftritt.
In einer Gleichungsfrage (eqString) erzeugst Du einen String in der Art
{join(if(Q1_SQ001_0==max0 or Q1_SQ001_1==max0,"A",""),if(Q1_SQ002_0==max0 or Q1_SQ002_1==max0,"B",""),if(Q1_SQ003_0==max0 or Q1_SQ003_1==max0,"C",""),...
für alle Teilfragen.
Dann bekommst Du einen String wie "BDG", der Kennzeichner für all Teilfragen enthält, in denen das Maximum gewählt wurde.
In einer weitere Gleichungsfrage (eqRand) bestimmst Du nun eine Zufallszahl von (1-Länge des Strings)
{if(is_empty(eqRand),rand(1,strlen(eqString),eqRand)}
Und in einer dritten Gleichungsfrage (eqRes) greifst Du aus dem String das Kennzeichen an der Stelle der Zufallszahl
{substr(eqString,eqRand-1,1)}

Damit hast Du die Teilfrage, die dem (evtl. zufällig aus mehreren ausgesuchten) Maximum entspricht.
und kannst die Frage anzeigen, mit
{if(eqRes=="A",Q1_SQ001.question,if(eqRes=="B",Q1_SQ002.question,if(eqRes=="C",Q1_SQ003.question,...))))}

Das ist erst einmal ins Blaue geschrieben.
So würde ich es machen.
Aber zunächst schauen wir uns einmal den lss Export an; dann sehen wir es genauer.

Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

  • Faustus
  • Faustus's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 weeks 5 days ago #267802 by Faustus
Replied by Faustus on topic max()-Funktion bei DualMatrix

File Attachment:

File Name: limesurvey...07-2.lss
File Size:40 KB


Ahh, sorry. Das wusste ich nicht mit den verschiedenen Exportmöglichkeiten.

hier nun die .lss-Datei.

Die drei Teil-Fragen waren Beispielhaft sind eigentlich ein paar mehr.

vielen Dank nochmal!

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
3 weeks 4 days ago - 3 weeks 4 days ago #267805 by Joffm
Replied by Joffm on topic max()-Funktion bei DualMatrix
Gut, ich habe einmal meinen Vorschlag eingebaut.
Ist eigentlich genauso wie bereits beschrieben.

Ich habe aber meiner Bequemlichkeit halber die Fragen- und Teilfragencodes geändert
Alle Fragen in der Gruppe GCalc werden natürlich nach dem Testen versteckt.

Und hier siehst Du auch warum ich gerne Buchstaben als Kennzeichen benutze. Mit Groß- und Kleinbuchstaben sowie den zehn Ziffern kann man locker 62 Optionen  bearbeiten.
Es ist einfach handlicher als wenn man mit zwei- oder gar dreistelligen Ungetümen arbeiten muss.

Wie dies geht, kannst Du einmal in meinem "Tutorial 4: Gleichungen, Zufall" nachlesen.
Ich denke, es ist hier irgendwo auf Seite 15 +- 2

 

File Attachment:

File Name: limesurvey...5151.lss
File Size:57 KB


Joffm

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

Please Log in to join the conversation.

  • Faustus
  • Faustus's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
3 weeks 4 days ago #267825 by Faustus
Replied by Faustus on topic max()-Funktion bei DualMatrix
Wow, vielen Dank!

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose