Welcome to the LimeSurvey Community Forum

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

Hilfe bei der Umsetzung für ein Uni-Projekt

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 months 1 week ago #266018 by Joffm
So, und jetzt noch eine Lösung - ausschließlich mit ExpressionScript:

Erstelle eine Frage vom Typ "list(radio)" (Q2a) mit 16 Optionen (1,2,3,4,...) - diese speichert die letztendlich gewählte Zahl.
So, jetzt geht es los
In der "Kalkulationsgruppe" (hier "G3") wird ein "Hilfscontainer" angelegt, einfach eine Frage "mehrfache Zahleingabe" mit 16 Teilfragen (Q3a)
1. "eqQ3a": In einer Frage vom Typ "Gleichung" wird die Häufigkeit der einzelnen Optionen der Frage Q2a abgefragt und in die einzelnen Felder des "Containers Q3a geschrieben.
Dazu dient die Funktion "statCountif"
{Q3a_1=statCountIf(Q2a.sgqa, "1",0)}
{Q3a_2=statCountIf(Q2a.sgqa, "2",0)}
{Q3a_3=statCountIf(Q2a.sgqa, "3",0)}
...
{Q3a_15=statCountIf(Q2a.sgqa, "15",0)}
{Q3a_16=statCountIf(Q2a.sgqa, "16",0)}


2. "eqMin": Es wird das Minimum der dort eingetragenen Werte bestimmt. Klar, wenn beim ersten Lauf die "5" gezogen wurde, hat diese nun de Häufigkeit "1", die restlichen "0" - nur diese werden berücksichtigt.
{min(that.Q3a)}

3. "eqList": Alle Werte des "Containers" mit dieser Häufigkeit werden zu einem String zusammengefasst (hier wieder die Benutzung von Buchstaben, um nur mit einstelligen Objekten umgehen zu müssen)
{join(if(Q3a_1==eqMin,'A',''),if(Q3a_2==eqMin,'B',''),if(Q3a_3==eqMin,'C',''),...,if(Q3a_15==eqMin,'O',''),if(Q3a_16==eqMin,'P',''))}

4. "eqRand": Es wird eine Zufallszahl erzeugt von 1- Länge des Strings
{if(is_empty(self),rand(1,strlen(eqList)),self)}

5. "eqZahl" : Es wird der an dieser Stelle befindliche Buchstabe genommen.
{substr(eqList,eqRand-1,1)}

6. "eqQ2a" Die "list(radio)"-Frage wird mit diesem Wert besetzt (Hier wieder die Rückübersetzung von Buchstabe zu Zahl)
{Q2a=if(eqZahl=="A",1,if(eqZahl=="B",2,if(eqZahl=="C",3,if(eqZahl=="D",4,if(eqZahl=="E",5,if(eqZahl=="F",6,if(eqZahl=="G",7,if(eqZahl=="H",8,if(eqZahl=="I",9,if(eqZahl=="J",10,if(eqZahl=="K",11,if(eqZahl=="L",12,if(eqZahl=="M",13,if(eqZahl=="N",14,if(eqZahl=="O",15,if(eqZahl=="P",16,0))))))))))))))))}

Hier meine Baumstruktur. Natürlich werden sämtliche Fragen versteckt.
 

Damit hat man nun Bedingungen wie
Q2a==12 um den Satz mit der entsprechenden Variationen anzuzeigen

Und es ist auch klar, dass ein Test nur mit aktivierter Umfrage erfolgreich ist, da ansonsten ja gar keine Daten vorhanden sind.

Joffm

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

Please Log in to join the conversation.

  • ERed3456
  • ERed3456's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 months 3 weeks ago - 7 months 3 weeks ago #266294 by ERed3456
Replied by ERed3456 on topic Hilfe bei der Umsetzung für ein Uni-Projekt
Lieber Joffm,

Entschuldige die späte Antwort. Ich möchte mich vielmals für deine Mühe bedanken! Ich bin sehr dankbar und beeindruckt von deinem Wissen über LimeSurvey und andere Techniken, da ich leider etwas überfordert bin.

Und ja, genau, es soll 16 Texte geben und dazu pro Text 16 Variationen. Der Teilnehmer soll alle 16 Texte sehen, aber pro Text nur eine Version. Es muss jedoch nicht dieselbe sein, also könnte der erste Teilnehmer beispielsweise aus Zufall die Texte 1.1, 2.4, 3.9, 4.16 usw. sehen. Der nächste Teilnehmer soll dann ebenfalls alle 16 Texte sehen, aber nicht die gleichen wie der erste Proband (1.1, 2.4, 3.9, 4.16), sondern soll nur noch aus 15 Versionen pro Text eine zufällige Version auswählen können und so weiter. 

Ich habe deine Lösung mit ExpressionScript ausprobiert, allerdings habe ich gleich Fehler eingebaut, die ich nicht finden kann. Ich habe deine Anleitung abgearbeitet und die gleiche Baumstruktur erstellt. Dann habe ich nochmals16 Fragegruppen mit jeweils 16 Fragen für die 16 Verschiedenen Versionen pro Text erstellt. Wenn ich die Umfrage aber starte, wird G2 angezeigt, obwohl  ich versucht habe diese mit "hidden" bei "CSS-Klassen" zu verstecken. Als Nächstes erscheint dann der Fehler "500: Internal Server Error - mb_substr(): Argument #2 ($start) must be of type int, float given." Ich habe nach der Ursache des Fehlers gesucht, konnte aber nichts finden. Auch als ich den Fehler im Internet eingegeben habe bin ich nicht fündig geworden.

Ich bedanke mich nochmals vielmals für deine Hilfe und bitte um Entschuldigung, falls meine Fragestellungen oder Auskünfte nicht klar genug waren/sind. Leider weiß ich auch nicht, wie ich einen Iss-Export statt eines Isg-Exports durchführe. Ich habe einfach auf "Export" geklickt. Leider kann ich ja auch nicht die texte weitergeben die für die Studie verwendet werden sollen. Ich könnte ansonsten nur probieren, nochmals das Gleiche zu erstellen mit anderen Texten, die nicht verwendet werden. (Zur allgemeinen Auswertung kann ich leider auch keine genauen Infos geben, da es auch nicht zu meinen Aufgaben gehört bei dem Projekt, aber die Texte sollen von den Probanden mit einen Punktesystem bewertet werden.)
Im Anhang habe ich diesmal Screenshots von meiner Baumstruktur, der Umfragenvorschau und den Versuch, meine Fragen mit "hidden" zu verstecken, beigefügt.

Vielen herzlichen Dank im Voraus für jegliche Hilfe!!!

Liebe Grüße
Ellen
Last edit: 7 months 3 weeks ago by ERed3456.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 months 3 weeks ago - 7 months 3 weeks ago #266305 by Joffm
Hallo,
1. der lss-Export
Diesen findest Du hier - in der Umfragen-Übersicht
 

Hingegen findest Du die Fragen (lsq) bzw. Gruppen (lsg)-Exporte in den jeweiligen Kontextmenues..
 

2. Der Fehler
Ganz schlecht zu sagen.
Dein Baum sieht ja äußerlich gut aus.
Egal, lss-Export

3. Prototyp der Umfrage

Leider kann ich ja auch nicht die texte weitergeben die für die Studie verwendet werden sollen. Ich könnte ansonsten nur probieren, nochmals das Gleiche zu erstellen mit anderen Texten, die nicht verwendet werden.

Genau das erbitten wir. Einen Prototypen, der die Struktur so gut wie möglich repliziert, aber irgendwelche Texte enthält.
In meinen Tutorials agieren ja auch immer "Anton Ameise", "Berta Biber", "Carlo Chinchilla" und Konsorten
Es genügen ja schon vier Texte, jeweils in den 16 Variationen.
Dann kann man es vernünftig anlegen. Es ist ja dann ein Leichtes, auf 16 zu extrapolieren. 

Bis dann
Joffm

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 7 months 3 weeks ago by Joffm.
The following user(s) said Thank You: ERed3456

Please Log in to join the conversation.

  • ERed3456
  • ERed3456's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 months 3 weeks ago #266326 by ERed3456
Replied by ERed3456 on topic Hilfe bei der Umsetzung für ein Uni-Projekt
Hallo, 

vielen Dank für deine schnelle Antwort! Ich habe nun einen Prototypen mit den verschiedenen Vignetten-Variationen erstellt. Für die Vignetten 1 bis 4 habe ich jeweils alle 16 Variationen angelegt. Die Vignetten-Gruppen 5 bis 16 sind Kopien von Vignette 1. Außerdem habe ich entsprechend deiner Anleitung eine Iss-Datei erstellt und hoffe, dass sie dir weiterhilft.

Vielen Dank im Voraus!

Liebe Grüße
Ellen

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 months 3 weeks ago #266327 by Joffm
Hallo, Ellen,
danke.
Aber gleich habe ich den ersten kleinen Fehler gesehen.
Du hast in der Frage Q3a die Teilfragencodes auf "SQ001", "SQ002",... belassen.
In der Frage eqQ3a (ich benenne Gleichungsfragen immer gerne mit startendem eq (=equation) und der Frage, auf die sie sich bezieht)
wird aber Q§a_1, Q3a_2,... vorbesetzt; d.h. die Teilfragencodes sind einfach 1, 2, 3,...

Zu den 16 Variationen hatte ich wohl schon geschrieben, dass man hier besser mit "tayloring" arbeitet, statt jede einzeln aufzuführen.
Gerade für statistische Auswertungen (K-Test, ANOVA, etc.) ist dies die bessere Lösung, da die Daten im benötigten Format vorliegen.

Gut, ich war ja auch nicht untätig und habe eine sehr schöne Lösung, wobei ich mich noch entscheiden muss, wie es genau implementiert wird.

Spätestens morgen schicke ich dann das Beispiel zurück.

Joffm

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

Please Log in to join the conversation.

  • ERed3456
  • ERed3456's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 months 3 weeks ago #266330 by ERed3456
Replied by ERed3456 on topic Hilfe bei der Umsetzung für ein Uni-Projekt
Dankeschön, Joffm, für deine Hilfe!
Wirklich toll, wie viel Mühe du dir gibst, auch bei den anderen Problemen im Forum!
Ich versuche, die genannten Fehler zu verbessern.

Liebe Grüße
Ellen

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 months 3 weeks ago #266332 by Joffm

Ich versuche, die genannten Fehler zu verbessern.

Nee, lass mal.
Es sollte nur ein Hinweis sein, dass man auf solche Dinge achten muss.

Ich mache Dir ja etwas

Joffm
 

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

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 months 3 weeks ago - 7 months 3 weeks ago #266339 by Joffm
So, hier kommt jetzt das versprochene Beispiel.
Zunächst viel Erklärung.
Dies sind die Gruppen und Fragen, die am Anfang benötigt werden, um alle benötigten Werte zu berechnen
 

Das alles Entscheidende ist die Frage QErg (Matrix) mit 16 Zeilen (Sätze) und 16 Spalten (Variationen)
Hier wird für jeden Teilnehmer seine benutzte Kombination gespeichert. 
Mit der Funktion "statCountIf" wird dann bei jedem folgenden Teilnehmer gescheut, welche Kombinationen nun noch frei sind.

Das Grundgerüst bildet ein "Container" (Matrix(Texte)) um Zwischenergebnisse zu speichern.
 
16 Zeilen = 16 Sätze, codiert einfach numerisch 1,2,3,4,...15,16
4 Spalten
  1. min - Hier wird das Minimum der Anzahl aller bisher gezogenen Zahlen des jeweiligen Satzes gespeichert.
  2. list - Eine Liste derjenigen der 16 Variationen wird erzeugt, die dem Minimum entsprechen. (Hier soll gelten "A=1, B=2, C=3, ... , J=10, K=11,... O=15, P=16)
    Damit benötigt man nur ein Zeichen.
  3. rand - Eine Zufallszahl wird erzeugt von 1 - Länge der Liste
  4. zahl - Aus der Liste wird die Zahl / das Zeichen genommen, welches an der Position der Zufallszahl steht und in binärer Darstellung gespeichert.
    Grund: Man bekommt Darstellungen wie "0000", "0101", "1101", also für die vier zu variierenden Teile eine der zwei Optionen.
Das nur zur ersten Erklärung des "Containers".
Nun beginnen wir diesen zu füllen.

eqMin :
{C_1_min=min(statCountIf(QErg_1.sgqa, "1",0), statCountIf(QErg_1.sgqa, "2",0), statCountIf(QErg_1.sgqa, "3",0), statCountIf(QErg_1.sgqa, "4",0), statCountIf(QErg_1.sgqa, "5",0), statCountIf(QErg_1.sgqa, "6",0), statCountIf(QErg_1.sgqa, "7",0), statCountIf(QErg_1.sgqa, "8",0), statCountIf(QErg_1.sgqa, "9",0), statCountIf(QErg_1.sgqa, "10",0), statCountIf(QErg_1.sgqa, "11",0), statCountIf(QErg_1.sgqa, "12",0), statCountIf(QErg_1.sgqa, "13",0), statCountIf(QErg_1.sgqa, "14",0), statCountIf(QErg_1.sgqa, "15",0), statCountIf(QErg_1.sgqa, "16",0))}
{C_2_min=min(statCountIf(QErg_2.sgqa, "1",0), statCountIf(QErg_2.sgqa, "2",0), statCountIf(QErg_2.sgqa, "3",0), statCountIf(QErg_2.sgqa, "4",0), statCountIf(QErg_2.sgqa, "5",0), statCountIf(QErg_2.sgqa, "6",0), statCountIf(QErg_2.sgqa, "7",0), statCountIf(QErg_2.sgqa, "8",0), statCountIf(QErg_2.sgqa, "9",0), statCountIf(QErg_2.sgqa, "10",0), statCountIf(QErg_2.sgqa, "11",0), statCountIf(QErg_2.sgqa, "12",0), statCountIf(QErg_2.sgqa, "13",0), statCountIf(QErg_2.sgqa, "14",0), statCountIf(QErg_2.sgqa, "15",0), statCountIf(QErg_2.sgqa, "16",0))}

...
für alle QErg_1 bis QErg_16
Nun steht in der 1. Spalte des Containers für jeden Satz das Minimum.

eqList (Wenn die Anzahl dem vorher berechneten Minimum entspricht, wird die Variation in die Liste übernommen)
{C_1_list=join(if(statCountIf(QErg_1.sgqa, "1",0)==C_1_min,"A",""), if(statCountIf(QErg_1.sgqa, "2",0)==C_1_min,"B",""), if(statCountIf(QErg_1.sgqa, "3",0)==C_1_min,"C",""), if(statCountIf(QErg_1.sgqa, "4",0)==C_1_min,"D",""), if(statCountIf(QErg_1.sgqa, "5",0)==C_1_min,"E",""), if(statCountIf(QErg_1.sgqa, "6",0)==C_1_min,"F",""), if(statCountIf(QErg_1.sgqa, "7",0)==C_1_min,"G",""), if(statCountIf(QErg_1.sgqa, "8",0)==C_1_min,"H",""), if(statCountIf(QErg_1.sgqa, "9",0)==C_1_min,"I",""), if(statCountIf(QErg_1.sgqa, "10",0)==C_1_min,"J",""), if(statCountIf(QErg_1.sgqa, "11",0)==C_1_min,"K",""), if(statCountIf(QErg_1.sgqa, "12",0)==C_1_min,"L",""), if(statCountIf(QErg_1.sgqa, "13",0)==C_1_min,"M",""), if(statCountIf(QErg_1.sgqa, "14",0)==C_1_min,"N",""), if(statCountIf(QErg_1.sgqa, "15",0)==C_1_min,"O",""), if(statCountIf(QErg_1.sgqa, "16",0)==C_1_min,"P",""))}
{C_2_list=join(if(statCountIf(QErg_2.sgqa, "1",0)==C_2_min,"A",""), if(statCountIf(QErg_2.sgqa, "2",0)==C_2_min,"B",""), if(statCountIf(QErg_2.sgqa, "3",0)==C_2_min,"C",""), if(statCountIf(QErg_2.sgqa, "4",0)==C_2_min,"D",""), if(statCountIf(QErg_2.sgqa, "5",0)==C_2_min,"E",""), if(statCountIf(QErg_2.sgqa, "6",0)==C_2_min,"F",""), if(statCountIf(QErg_2.sgqa, "7",0)==C_2_min,"G",""), if(statCountIf(QErg_2.sgqa, "8",0)==C_2_min,"H",""), if(statCountIf(QErg_2.sgqa, "9",0)==C_2_min,"I",""), if(statCountIf(QErg_2.sgqa, "10",0)==C_2_min,"J",""), if(statCountIf(QErg_2.sgqa, "11",0)==C_2_min,"K",""), if(statCountIf(QErg_2.sgqa, "12",0)==C_2_min,"L",""), if(statCountIf(QErg_2.sgqa, "13",0)==C_2_min,"M",""), if(statCountIf(QErg_2.sgqa, "14",0)==C_2_min,"N",""), if(statCountIf(QErg_2.sgqa, "15",0)==C_2_min,"O",""), if(statCountIf(QErg_2.sgqa, "16",0)==C_2_min,"P",""))}

...
auch für alle 16
Nebenbemerkung: Um nicht alle 256 Häufigkeiten zwischenspeichern zu müssen, wird hier die Funktion "statCountIf" zum zweiten Mal angewendet, was eigentlich kein guter Stil ist.

Jetzt kommt im Baum der Container. Irgendwie muss er dort liegen, sonst funktioniert es nicht.

In der zweiten Kalkulationsgruppe nun:
eqRand: (Eine Zufallszahl von 1 bis zur Länge der Liste)
{C_1_rand=if(is_empty(C_1_rand),rand(1,strlen(C_1_list)),C_1_rand)}
{C_2_rand=if(is_empty(C_2_rand),rand(1,strlen(C_2_list)),C_2_rand)}

...

eqZahl: (Die binäre Darstellung der Zahl wird gespeichert) Ich habe keine schnelle Funktion gefunden; daher ist es hier "zu Fuß" gelöst.
{C_1_zahl=if(substr(C_1_list,C_1_rand-1,1)=="A","0000", if(substr(C_1_list,C_1_rand-1,1)=="B","0001", if(substr(C_1_list,C_1_rand-1,1)=="C","0010", if(substr(C_1_list,C_1_rand-1,1)=="D","0011", if(substr(C_1_list,C_1_rand-1,1)=="E","0100", if(substr(C_1_list,C_1_rand-1,1)=="F","0101", if(substr(C_1_list,C_1_rand-1,1)=="G","0110", if(substr(C_1_list,C_1_rand-1,1)=="H","0111", if(substr(C_1_list,C_1_rand-1,1)=="I","1000", if(substr(C_1_list,C_1_rand-1,1)=="J","1001", if(substr(C_1_list,C_1_rand-1,1)=="K","1010", if(substr(C_1_list,C_1_rand-1,1)=="L","1011", if(substr(C_1_list,C_1_rand-1,1)=="M","1100", if(substr(C_1_list,C_1_rand-1,1)=="N","1101", if(substr(C_1_list,C_1_rand-1,1)=="O","1110", if(substr(C_1_list,C_1_rand-1,1)=="P","1111"))))))))))))))))}
{C_2_zahl=if(substr(C_2_list,C_2_rand-1,1)=="A","0000", if(substr(C_2_list,C_2_rand-1,1)=="B","0001", if(substr(C_2_list,C_2_rand-1,1)=="C","0010", if(substr(C_2_list,C_2_rand-1,1)=="D","0011", if(substr(C_2_list,C_2_rand-1,1)=="E","0100", if(substr(C_2_list,C_2_rand-1,1)=="F","0101", if(substr(C_2_list,C_2_rand-1,1)=="G","0110", if(substr(C_2_list,C_2_rand-1,1)=="H","0111", if(substr(C_2_list,C_2_rand-1,1)=="I","1000", if(substr(C_2_list,C_2_rand-1,1)=="J","1001", if(substr(C_2_list,C_2_rand-1,1)=="K","1010", if(substr(C_2_list,C_2_rand-1,1)=="L","1011", if(substr(C_2_list,C_2_rand-1,1)=="M","1100", if(substr(C_2_list,C_2_rand-1,1)=="N","1101", if(substr(C_2_list,C_2_rand-1,1)=="O","1110", if(substr(C_2_list,C_2_rand-1,1)=="P","1111"))))))))))))))))}

...

Bitte immer beachten beim Nachvollziehen: Bei der Funktion "substr" hat das erste Zeichen den Index "0", daher auch die Subtraktion von 1.

eqQErg: Hier wir jetzt dasselbe Ergebnis (nicht-binär) in dee Matrix gespeichert
{QErg_1=if(substr(C_1_list,C_1_rand-1,1)=="A",1, if(substr(C_1_list,C_1_rand-1,1)=="B",2, if(substr(C_1_list,C_1_rand-1,1)=="C",3, if(substr(C_1_list,C_1_rand-1,1)=="D",4, if(substr(C_1_list,C_1_rand-1,1)=="E",5, if(substr(C_1_list,C_1_rand-1,1)=="F",6, if(substr(C_1_list,C_1_rand-1,1)=="G",7, if(substr(C_1_list,C_1_rand-1,1)=="H",8, if(substr(C_1_list,C_1_rand-1,1)=="I",9, if(substr(C_1_list,C_1_rand-1,1)=="J",10, if(substr(C_1_list,C_1_rand-1,1)=="K",11, if(substr(C_1_list,C_1_rand-1,1)=="L",12, if(substr(C_1_list,C_1_rand-1,1)=="M",13 ,if(substr(C_1_list,C_1_rand-1,1)=="N",14, if(substr(C_1_list,C_1_rand-1,1)=="O",15 ,if(substr(C_1_list,C_1_rand-1,1)=="P",16))))))))))))))))}
{QErg_2=if(substr(C_2_list,C_2_rand-1,1)=="A",1, if(substr(C_2_list,C_2_rand-1,1)=="B",2, if(substr(C_2_list,C_2_rand-1,1)=="C",3, if(substr(C_2_list,C_2_rand-1,1)=="D",4, if(substr(C_2_list,C_2_rand-1,1)=="E",5, if(substr(C_2_list,C_2_rand-1,1)=="F",6, if(substr(C_2_list,C_2_rand-1,1)=="G",7, if(substr(C_2_list,C_2_rand-1,1)=="H",8, if(substr(C_2_list,C_2_rand-1,1)=="I",9, if(substr(C_2_list,C_2_rand-1,1)=="J",10, if(substr(C_2_list,C_2_rand-1,1)=="K",11, if(substr(C_2_list,C_2_rand-1,1)=="L",12, if(substr(C_2_list,C_2_rand-1,1)=="M",13 ,if(substr(C_2_list,C_2_rand-1,1)=="N",14, if(substr(C_2_list,C_2_rand-1,1)=="O",15, if(substr(C_2_list,C_2_rand-1,1)=="P",16))))))))))))))))}

...

Und als Ergebnis hat man nun für jeden Satz eine der 16 Variationen
 

Hier einmal das Ergebnis nach 17 Durchläufen (ich hatte damals nur 5 Sätze)
 
Du siehst, dass in jedem Satz zunächst alle 16 in unterschiedlicher Reihenfolge auftauchen, bevor beim 17. Teilnehmer eine Zahl zum zweiten Mal auftaucht.

Nun zur Anzeige der Sätze.
Wie ich schon öfters schrieb: "tayloring".
Damit sieht zum Beispiel dieser Satz so aus
{if(substr(C_2_zahl,0,1)=="0","Carlo","Charlotte")} Chinchilla spielt gerne {if(substr(C_2_zahl,1,1)=="0","Tennis","Kricket")}. Das letzte Spiel endete mit  {if(substr(C_2_zahl,2,1)=="0","einer Niederlage","einem Sieg")}, da  {if(substr(C_2_zahl,3,1)=="0","nicht","sehr")} viele Zuschauer anwesend waren.

Dieses ist der Satz der Vignette 2 (daher wird "C_2_zahl" benutzt).
Und es wird nacheinander auf die vier Zeichen der binären Darstellung referiert (substr(C_2_zahl,0,1), substr(C_2_zahl,1,1), substr(C_2_zahl,2,1), substr(C_2_zahl,3,1)
Je nachdem, ob der Wert 0 oder 1 ist, wird der entsprechende Text angezeigt.

Und als Letztes.
Beim Export der Daten kannst Du getrost auf alles vor QErg verzichten. Erst QErg ist notwendig, damit Du weißt, welche Variation im jeweiligen Satz vorlag.

Und als Allerletztes.
Die Fragen werden mit der GUI versteckt; Einstellung "Diese Frage immer verstecken".
Außerdem basiert LimeSurvey seit der Version 6 auf bootstrap 5. Dort gibt es die Klasse "hidden" nicht mehr. Es heißt jetzt "d-none"

Und endlich die lss.
 

File Attachment:

File Name: limesurvey...6737.lss
File Size:156 KB

Viel Erfolg

Joffm

Edit:
Ich schrieb, dass mir keine einfache Funktion zur Umwandlung von "dezimal" zu "dual" wie "dezbin" eingefallen ist.
Aber umgekehrt "bindez" ist es ja kinderleicht.
Damit könnte sich eqQErg ändern zu:
{QErg_1=sum(substr(C_1_zahl,0,1)*8,substr(C_1_zahl,1,1)*4,substr(C_1_zahl,2,1)*2,substr(C_1_zahl,3,1),1)}
{QErg_2=sum(substr(C_2_zahl,0,1)*8,substr(C_2_zahl,1,1)*4,substr(C_2_zahl,2,1)*2,substr(C_2_zahl,3,1),1)}
{QErg_3=sum(substr(C_3_zahl,0,1)*8,substr(C_3_zahl,1,1)*4,substr(C_3_zahl,2,1)*2,substr(C_3_zahl,3,1),1)}

...

Noch ein kleiner Tipp:
Ich schreibe diese ellenlangen Texte natürlich nicht mit der Hand
Entweder benutze ich einen PlainText-Editor wie Notepad++
und schreibe die erste Zeile.
Kopiere sie 15 Mal.
Dann kann man einfach eine Zeile nach der anderen markieren und mit "Suchen&Ersetzen" die "1" in "2", "3", "4",... ändern

Oder ich splitte in Excel die Zeile so auf mehrere Spalten auf, dass die zu ändernden Elemente separat in einer Spalte sind.
Dann in einer weiteren Spalte mit der Funktion "VERKETTEN" wieder zusammenfügen.
Alles 15 Mal nach unten kopieren, die zu ändernden Werte entsprechend nach unten ziehen, dass auch wieder 1,2,3,4... entsteht. 

​​​​​​​Egal wie; dann kopiert man alles wieder nach LimeSurvey.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 7 months 3 weeks ago by Joffm.
The following user(s) said Thank You: ERed3456

Please Log in to join the conversation.

  • ERed3456
  • ERed3456's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 months 2 weeks ago #266380 by ERed3456
Replied by ERed3456 on topic Hilfe bei der Umsetzung für ein Uni-Projekt
Lieber Joffm,

Ich danke Dir vielmals! Du hast mir wirklich sehr weitergeholfen und dank Deiner Mühe habe ich es endlich hinbekommen. Ohne Deine Hilfe hätte ich das nie geschafft! Vielen Dank!

Allerdings wollte ich zur  Kontrolle auch 17 Durchgänge machen,  aber bei mir wird immer die gleiche Textversion pro Text angezeigt . Weißt Du, woran das liegen könnte? 

Liebe Grüße
Ellen

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 months 2 weeks ago - 7 months 2 weeks ago #266390 by Joffm
Nein, woher auch.
Da hilft nur "Zeigen, "Zeigen", "Zeigen".
Und dazu genügt ja der "Kalkulationsteil", also alles bis QErg.

Aktiviert war die Umfrage, oder?

Joffm

P.S.
Wie Du hier in der Antworttabelle siehst, wird die Liste (das ist ja gleichbedeutend mit den Kugeln die noch in der Urne sind) bei jeder Person um eine Stelle kürzer - eine Kugel ist ja wieder weg.
Damit kann es nicht sein, dass eine Kugel innerhalb eines Zyklus doppelt vorkommt.
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 7 months 2 weeks ago by Joffm.
The following user(s) said Thank You: ERed3456

Please Log in to join the conversation.

  • ERed3456
  • ERed3456's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
7 months 2 days ago #266602 by ERed3456
Replied by ERed3456 on topic Hilfe bei der Umsetzung für ein Uni-Projekt
Lieber Joffm,

vielen Dank für deine Antwort.
Ich habe das Problem auch, wenn ich einfach nur deine ISS-Datei importiere und dann die Umfrage aktiviere. Daher kann ich dir leider nichts zuschicken, da es sich ja bereits um deine Datei handelt. Auch als ich versucht habe, über verschiedene Accounts an der Umfrage teilzunehmen, wurden immer nur die gleichen Textversionen pro Text angezeigt. Bei jedem Text wird immer die zweite Möglichkeit pro Lücke angezeigt, also bei Text 1: „Our“, „China“, „not“, „did not approve“; bei Text 2: „Charlotte“, „Kricket“, „einem Sieg“, „sehr“ und so weiter, auch bei den zwei weiteren Texten. Egal, wie oft ich die Umfrage ausführe, es werden immer die gleichen vier Texte angezeigt.

Liebe Grüße
Ellen

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
7 months 2 days ago - 7 months 2 days ago #266603 by Joffm
So, zunächst einmal die Frage, die noch nie gestellt wurde: "das Plugin "statFunctions" ist installiert und aktiviert?"
 
Wenn Ja, kannst Du probieren, die Frage "eqList" in "GCalc2" zu schieben (an den Anfang).

Ich glaube zwar nicht, dass es etwas ausmacht; aber, wer weiß.

Ich sehe nämlich keine Probleme.
Hier siehst Du, dass immer die 16 "Zeichen" nacheinander zufällig abgearbeitet werden, und dann die Urne wieder gefüllt wird.
 

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 7 months 2 days ago by Joffm.
The following user(s) said Thank You: ERed3456

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose