- Posts: 19
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
- jucus13
- Topic Author
- Offline
- New Member
Less
More
2 years 7 months ago #219889
by jucus13
Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen was created by jucus13
Hallo zusammen,
ich nutze die Version Version 3.22.9+200317 von LimeSurvey.
Ich möchte gerne eine Fragegruppe erstellen, bei der 4 Fragen zufällig nacheinander angezeigt werden.
Es soll nach folgendem Prinzip aussehen:
Frage 1: eine auch 4 möglichen Fragen
Frage 2: eine aus den 4 möglichen Fragen (aber nicht die, die schon angezeigt wurde)
Frage 3: eine aus den 4 möglichen Fragen, die aber nicht angezeigt wurden in Frage 1 und 2.
Ich habe hierfür schon die rand-Funktion genutzt, jedoch kann ich hier nicht einstellen, dass die Fragen, die schon angezeigt wurden, NICHT mehr angezeigt werden.
Ich suche also eine Option nach dem Urnenprinzip ohne Zurücklegen.
Vorab schon einmal vielen Dank!
ich nutze die Version Version 3.22.9+200317 von LimeSurvey.
Ich möchte gerne eine Fragegruppe erstellen, bei der 4 Fragen zufällig nacheinander angezeigt werden.
Es soll nach folgendem Prinzip aussehen:
Frage 1: eine auch 4 möglichen Fragen
Frage 2: eine aus den 4 möglichen Fragen (aber nicht die, die schon angezeigt wurde)
Frage 3: eine aus den 4 möglichen Fragen, die aber nicht angezeigt wurden in Frage 1 und 2.
Ich habe hierfür schon die rand-Funktion genutzt, jedoch kann ich hier nicht einstellen, dass die Fragen, die schon angezeigt wurden, NICHT mehr angezeigt werden.
Ich suche also eine Option nach dem Urnenprinzip ohne Zurücklegen.
Vorab schon einmal vielen Dank!
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12881
- Thank you received: 3965
2 years 6 months ago #219891
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Hallo, die Frage ist: Gibt es nur diese 4 Fragen?
Um diese in unterschiedlicher Reihenfolge darzustellen, dient der "Randomisierungsgruppenname"
Alle vier bekommen denselben Namen dort verpasst, egal, was Du Dir ausdenken willst, "RG1" oder "Fitzliputzli-Tralala".
Wenn Du allerdings mehr als vier Fragen hast, aber aus diesem Pool nur vier in unterschiedlicher Reihenfolge zeigen willst, gibst Du wieder allen denselben "Randomisierungsgruppennamen".
Darüberhinaus erzeugst Du eine zweite Gruppe, die aber nicht angezeigt wird (Relevanz "0")
In die erste Gruppe kommen vier Fragen, in die zweite alle übrigen.
Das war's.
Joffm
Um diese in unterschiedlicher Reihenfolge darzustellen, dient der "Randomisierungsgruppenname"
Alle vier bekommen denselben Namen dort verpasst, egal, was Du Dir ausdenken willst, "RG1" oder "Fitzliputzli-Tralala".
Wenn Du allerdings mehr als vier Fragen hast, aber aus diesem Pool nur vier in unterschiedlicher Reihenfolge zeigen willst, gibst Du wieder allen denselben "Randomisierungsgruppennamen".
Darüberhinaus erzeugst Du eine zweite Gruppe, die aber nicht angezeigt wird (Relevanz "0")
In die erste Gruppe kommen vier Fragen, in die zweite alle übrigen.
Das war's.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- jucus13
- Topic Author
- Offline
- New Member
Less
More
- Posts: 19
- Thank you received: 0
2 years 6 months ago #219892
by jucus13
Replied by jucus13 on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Vielen Dank für die Antwort. Jedoch kann ich das nicht ganz verstehen.
Ja, es gibt 27 mögliche Fragen. Aus diesen Fragen sollen zufällig 4 Stück ausgewählt werden.
Wenn jedoch bereits eine Frage aus dem Pool der 27 Fragen dargestellt wurde, soll diese nicht doppelt kommen.
Ich verstehe nicht ganz, warum ich dafür eine zweite Gruppe erstellen soll, die dann nicht angezeigt wird.
Ja, es gibt 27 mögliche Fragen. Aus diesen Fragen sollen zufällig 4 Stück ausgewählt werden.
Wenn jedoch bereits eine Frage aus dem Pool der 27 Fragen dargestellt wurde, soll diese nicht doppelt kommen.
Ich verstehe nicht ganz, warum ich dafür eine zweite Gruppe erstellen soll, die dann nicht angezeigt wird.
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12881
- Thank you received: 3965
2 years 6 months ago #219893
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Im Grunde ist es ganz einfach.
Du hast 27 Fragen, 4 werden gezeigt, weil sie in Gruppe 1 sind, 23 nicht, da in Gruppe 2.
Und da alle denselben Randomisieringsgruppennamen haben, werden alle 27 verwürfelt.
Das heißt, irgendwelche 4 landen in Gruppe 1.
Probiere es einfach aus und lies noch einmal im Handbuch darüber nach
Joffm
Du hast 27 Fragen, 4 werden gezeigt, weil sie in Gruppe 1 sind, 23 nicht, da in Gruppe 2.
Und da alle denselben Randomisieringsgruppennamen haben, werden alle 27 verwürfelt.
Das heißt, irgendwelche 4 landen in Gruppe 1.
Probiere es einfach aus und lies noch einmal im Handbuch darüber nach
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- jucus13
- Topic Author
- Offline
- New Member
Less
More
- Posts: 19
- Thank you received: 0
2 years 6 months ago #219935
by jucus13
Replied by jucus13 on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Vielen Dank für die Nachricht. Es hat nun geklappt!
Ich würde nun gerne auch hinter jede Frage eine weitere Frage mit Bedingung einfügen. Jedoch wird mir hier das nur teilweise angezeigt, obwohl hinter alle 27 möglichen Fragen die bedingte Frage hinzugefügt hab.
Kann es ein Problem geben, weil die Fragen randomisiert sind? Bzw. wie löse ich, dass jede Frage eine weitere Frage aufzeigt mit Bedingung?
Vielen Dank fürs Helfen!
Ich würde nun gerne auch hinter jede Frage eine weitere Frage mit Bedingung einfügen. Jedoch wird mir hier das nur teilweise angezeigt, obwohl hinter alle 27 möglichen Fragen die bedingte Frage hinzugefügt hab.
Kann es ein Problem geben, weil die Fragen randomisiert sind? Bzw. wie löse ich, dass jede Frage eine weitere Frage aufzeigt mit Bedingung?
Vielen Dank fürs Helfen!
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12881
- Thank you received: 3965
2 years 6 months ago #219940
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Hallo,
ist das jetzt alles?
Angefangen hat es mit 4 Fragen in unterschiedlicher Reihenfolge.
Dann waren es 4 aus 27 Fragen.
Und jetzt sind es 4 gepaarte Fragen aus 27 Paaren.
Und dazu muss ich sagen: Dann geht es so nicht.
Dazu musst Du alles total anders angehen.
Und zwar kannst Du 27 Gruppen erstellen mit den Paaren.
Damit später die Fragenpaare wieder randomisiert angezeigt werden, bekommen jetzt die GRUPPEN denselben Randomisierungsgruppennamen.
Und jetzt benötigst Du noch Deine Ziehung.
Dazu kannst Du eine Frage vom Typ "kurzer Text" erstellen mit folgenden javascript im Fragetext (Quellcode-Modus)
Damit bekommst Du einen String mit vier zufälligen Zahlen aus den 27.
Im script ist diese Zeile
// $('#question{QID}').hide();
auskommentiert. D.h. die Frage wird angezeigt.
Dies ist zum Testen auch richtig. In der "scharfen" Umfrage werden die beiden Schrägstriche dann entfernt.
Desweiteren ist zu sagen, dass diese Frage nicht alleine in einer Gruppe sein kann. Also füge sie in irgendeine Gruppe am Start der Umfrage ein.
Gut, jetzt hast Du einen String mit 4 Zahlen.
Dann kannst Du genau diese 4 Gruppen anzeigen, indem Du die Relevanzgleichungen der Gruppen folgendermaßen setzt:
Gruppe 1: Ist die "01" im string? Ja, dann angezeigt, nein, dann nicht angezeigt.
Gruppe 2: Ist die "02" im string? Ja, dann angezeigt, nein, dann nicht angezeigt.
Usw.
Dazu nimmst Du die Funktion "strpos"
Siehe hier.
[url] manual.limesurvey.org/ExpressionScript_-...mplemented_functions [/url]
Und jetzt weißt Du auch, warum ein "#"-Zeichen am Anfang steht.
Ohne dieses würde die Suche nach "03" den Index "0" ergeben.
Das bedeutet aber auch "nicht gefunden".
Daher die Raute; damit ist der kleinste Index auf jeden Fall 1.
Viel Erfolg
Joffm
ist das jetzt alles?
Angefangen hat es mit 4 Fragen in unterschiedlicher Reihenfolge.
Dann waren es 4 aus 27 Fragen.
Und jetzt sind es 4 gepaarte Fragen aus 27 Paaren.
Und dazu muss ich sagen: Dann geht es so nicht.
Dazu musst Du alles total anders angehen.
Und zwar kannst Du 27 Gruppen erstellen mit den Paaren.
Damit später die Fragenpaare wieder randomisiert angezeigt werden, bekommen jetzt die GRUPPEN denselben Randomisierungsgruppennamen.
Und jetzt benötigst Du noch Deine Ziehung.
Dazu kannst Du eine Frage vom Typ "kurzer Text" erstellen mit folgenden javascript im Fragetext (Quellcode-Modus)
Code:
<script type="text/javascript" charset="utf-8"> function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; // While there remain elements to shuffle... while (0 !== currentIndex) { // Pick a remaining element... randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; // And swap it with the current element. temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex]; array[randomIndex] = temporaryValue; } return array; } $(document).on('ready pjax:scriptcomplete',function(){ // Fill the array var arr = []; for (var i = 1; i < 28; i++) { arr.push(('000'+i).slice(-2)); } arr = shuffle(arr); anumbers = arr.slice(0,4).join(','); $('#question{QID} input[type="text"]').val("#"+anumbers+","); // $('#question{QID}').hide(); }); </script>
Damit bekommst Du einen String mit vier zufälligen Zahlen aus den 27.
Im script ist diese Zeile
// $('#question{QID}').hide();
auskommentiert. D.h. die Frage wird angezeigt.
Dies ist zum Testen auch richtig. In der "scharfen" Umfrage werden die beiden Schrägstriche dann entfernt.
Desweiteren ist zu sagen, dass diese Frage nicht alleine in einer Gruppe sein kann. Also füge sie in irgendeine Gruppe am Start der Umfrage ein.
Gut, jetzt hast Du einen String mit 4 Zahlen.
Dann kannst Du genau diese 4 Gruppen anzeigen, indem Du die Relevanzgleichungen der Gruppen folgendermaßen setzt:
Gruppe 1: Ist die "01" im string? Ja, dann angezeigt, nein, dann nicht angezeigt.
Gruppe 2: Ist die "02" im string? Ja, dann angezeigt, nein, dann nicht angezeigt.
Usw.
Dazu nimmst Du die Funktion "strpos"
Siehe hier.
[url] manual.limesurvey.org/ExpressionScript_-...mplemented_functions [/url]
Und jetzt weißt Du auch, warum ein "#"-Zeichen am Anfang steht.
Ohne dieses würde die Suche nach "03" den Index "0" ergeben.
Das bedeutet aber auch "nicht gefunden".
Daher die Raute; damit ist der kleinste Index auf jeden Fall 1.
Viel Erfolg
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12881
- Thank you received: 3965
2 years 6 months ago #219957
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Ich habe gerade gesehen, dass der screenshot des Textstrings fehlt.
Er sieht irgendwie so aus: #03,09,21,13
Er sieht irgendwie so aus: #03,09,21,13
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- jucus13
- Topic Author
- Offline
- New Member
Less
More
- Posts: 19
- Thank you received: 0
2 years 6 months ago #219961
by jucus13
Replied by jucus13 on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Vielen Dank für die ausführliche Beschreibung!
Ich habe den ersten Teil hinbekommen mit den Randomisierungsgruppen.
Ich habe hier mehrere Probleme:
1) Wenn ich diesen Quellcode eingebe, dann speichere und später wieder öffne ist der Code viel kürzer und verschwindet quasi. Ich muss also den ganzen Code nochmals reinkopieren. Ist das denn so gedacht?
2) Die Gruppen werden mir hier zwar randomisiert angezeigt, jedoch immer noch alle 27 Fragengruppen und nicht nur 4 Stück.
a)Wo sollte dieser String von 4 Zahlen erscheinen?
b) Und wo genau setze bzw. schreibe ich diese Funktion "strpos" hinein?
Viele Grüße
Ich habe den ersten Teil hinbekommen mit den Randomisierungsgruppen.
Ich habe hier mehrere Probleme:
1) Wenn ich diesen Quellcode eingebe, dann speichere und später wieder öffne ist der Code viel kürzer und verschwindet quasi. Ich muss also den ganzen Code nochmals reinkopieren. Ist das denn so gedacht?
2) Die Gruppen werden mir hier zwar randomisiert angezeigt, jedoch immer noch alle 27 Fragengruppen und nicht nur 4 Stück.
a)Wo sollte dieser String von 4 Zahlen erscheinen?
b) Und wo genau setze bzw. schreibe ich diese Funktion "strpos" hinein?
Viele Grüße
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12881
- Thank you received: 3965
2 years 6 months ago #219963
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Übrigens ist mir eingefallen, dass Du möglicherweise auch die Fragen-Property ".relevanceStatus" benutzen kannst.
Indem Du bei jeder der Gruppen testest, ob die Summe dieses Status der übrigen 26 Gruppen noch kleiner als 4 ist.
Ich werde nach dem Frühstück einmal schauen.
Joffm
Das sind wichtige informationen, da die Admins an Universitäten oft verbieten javascript einzufügen.
Indem Du bei jeder der Gruppen testest, ob die Summe dieses Status der übrigen 26 Gruppen noch kleiner als 4 ist.
Ich werde nach dem Frühstück einmal schauen.
Joffm
Arbeitest Du mit so etwas wie einer Uni-Installation, zumindest nicht auf Deiner eigenen Installation?1) Wenn ich diesen Quellcode eingebe, dann speichere und später wieder öffne ist der Code viel kürzer und verschwindet quasi. Ich muss also den ganzen Code nochmals reinkopieren. Ist das denn so gedacht?
Das sind wichtige informationen, da die Admins an Universitäten oft verbieten javascript einzufügen.
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- jucus13
- Topic Author
- Offline
- New Member
Less
More
- Posts: 19
- Thank you received: 0
2 years 6 months ago #219964
by jucus13
Replied by jucus13 on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Ja, ich arbeite mit einer Uni-Installation.
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12881
- Thank you received: 3965
2 years 6 months ago - 2 years 6 months ago #219974
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Gut, dann etwas umständlicher, nur mit Fragen vom Typ "Gleichung" (Punkt 2.) oder wirklich Hauruck (Punkt 1.).
[url] forums.limesurvey.org/forum/german-forum...zufallszahlen#209705 [/url]
Und hier noch die erwähnte Lösung mit ".relevanceStatus":
An den Anfang jeder deiner 27 Gruppen füge eine Frage vom Typ "Gleichung" ein (diese wird natürlich versteckt). Sei es "eq01" - "eq27".
In jeder dieser Gleichungen wird der "relevanceStatus" aller ANDEREN 26 ersten Fragen summiert.
eq01: sum(Q2.relevanceStatus,Q3.relevanceStatus,...,Q27.relevanceStatus)
eq02: sum(Q1.relevanceStatus,Q3.relevanceStatus,...,Q27.relevanceStatus)
...
eq27: sum(Q1.relevanceStatus,Q2.relevanceStatus,...,Q26.relevanceStatus)
Und die beiden Fragen jeder Gruppe bekommen als Relevanzgleichung:
Gruppe 1:
Q1: eq01 lt 5
Q1a: eq01 lt 5
Gruppe 2:
Q2: eq02 lt 5
Q2a: eq02 lt 5
Geht auch.
Joffm
Ansonsten würde ich vorschlagen, Du schickst uns den Prototypen Deines Werkes als lss Export.
Prototyp heißt, nur Platzhalter für die Fragen, nur die Struktur ist zunächst wichtig.
[url] forums.limesurvey.org/forum/german-forum...zufallszahlen#209705 [/url]
Und hier noch die erwähnte Lösung mit ".relevanceStatus":
An den Anfang jeder deiner 27 Gruppen füge eine Frage vom Typ "Gleichung" ein (diese wird natürlich versteckt). Sei es "eq01" - "eq27".
In jeder dieser Gleichungen wird der "relevanceStatus" aller ANDEREN 26 ersten Fragen summiert.
eq01: sum(Q2.relevanceStatus,Q3.relevanceStatus,...,Q27.relevanceStatus)
eq02: sum(Q1.relevanceStatus,Q3.relevanceStatus,...,Q27.relevanceStatus)
...
eq27: sum(Q1.relevanceStatus,Q2.relevanceStatus,...,Q26.relevanceStatus)
Und die beiden Fragen jeder Gruppe bekommen als Relevanzgleichung:
Gruppe 1:
Q1: eq01 lt 5
Q1a: eq01 lt 5
Gruppe 2:
Q2: eq02 lt 5
Q2a: eq02 lt 5
Geht auch.
Joffm
Ansonsten würde ich vorschlagen, Du schickst uns den Prototypen Deines Werkes als lss Export.
Prototyp heißt, nur Platzhalter für die Fragen, nur die Struktur ist zunächst wichtig.
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 years 6 months ago by Joffm.
The topic has been locked.
- jucus13
- Topic Author
- Offline
- New Member
Less
More
- Posts: 19
- Thank you received: 0
2 years 6 months ago #220003
by jucus13
Replied by jucus13 on topic Fragen nach Urnenprinzip ohne "Zurücklegen" darstellen
Vielen Dank für die Antworten und die Mühe.
Das klingt alles recht komplex und schwierig. Ich werde zunächst eine andere Strategie verfolgen.
Wahrscheinlich ist demnach Limesurvey nicht das optimale Tool, um meine Ideen umzusetzen
Viele Grüße
Das klingt alles recht komplex und schwierig. Ich werde zunächst eine andere Strategie verfolgen.
Wahrscheinlich ist demnach Limesurvey nicht das optimale Tool, um meine Ideen umzusetzen
Viele Grüße
The topic has been locked.
Moderators: Joffm