Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Search Results (Searched for: random)
- Help123
Ihre LimeSurvey-Version: [siehe rechts unten auf Ihrem LimeSurvey-Verwaltungsbildschirm]
Eigener Server oder LimeSurvey-Cloud: University
Genutzte Designvorlage: vanilla
==================
Hallo liebe Community,
ich schildere mein Problem, diesmal aber jedoch auf deutsch um eventuell den Durchbruch zu bekommen. Ich habe schon recht viel versucht, bekomme es aber leider alleine nicht hin. Chatgpt ist leider keine Hilfe.
Mein Hauptanliegen ist, dass ich viele Bilder bewerten lassen möchte. Dabei soll immer nur das Bild verändert werden, aber nicht die Fragen, denn die sind für alle Bilder gleich. Es gibt ja keine explizite Schleifenfunktion in Limesurvey. Vielleicht könnte mir der ein oder andere mit einer Alternative helfen. Noch expliziter, es gibt mehrere Blöcke/ Kategorien mit mehreren Bildern. Die Blöcke sollen randomisiert angezeigt werden und in den Blöcken sollen die Bilder mit den zugehörigen Fragen auch randomisiert sein. Zu einem Bild gehören ca 3 Fragen (eine Schiebereglerfrage und zwei Matrixfragen).
Auf den Rat eines Community Mitglieds, um eine Schleife zu kreieren, habe ich zwei Umfragen kreiert und diese miteinander verknüpft, in dem ich in der "Vater Umfrage" die End-URL der "Sohn Umfrage" eingefügt habe: www.yourServer.de/survey/index.php/ [Id_for_slave_survey]?pSAVE={SAVEDID}&pVIDEO={VG}&newtest=Y
Gleichzeitig habe ich dann in der Sohn Umfrage folgendes in die End-URL eingefügt: {if(!is_empty(rVIDEO)," www.yourServer.de/limesurvey/index.php/{..."+rVIDEO+"&newtest=Y ","")}
Das hat auch tatsächlich funktioniert, ich werde danach weitergeleitet zur Sohn Umfrage. Wenn ich diese allerdings einmal ausgefüllt habe dann steht dort ein Error und die Umfrage geht nicht mehr weiter. Die Schleife funktioniert also noch nicht richtig. Woran könnte das liegen? Da dieses Beispiel für Videos angelehnt ist und diese auch nicht gezeigt werden in dem Beispiel ist mir auch nicht ganz klar, wie ich meine Bilder möglichst effizient einfüge und wo ich das tun soll.
Liebe Grüße
- Help123
But since I didn't saw a solution for that I have anohre problem. I have 5 blocks with 80 pictures and per picture I have 3 questions. I want to randomize the order of the blocks shown and also the 80 pictures with the 3 questions in these 5 blocks. How would u do this the easiest way possible? Would you create per picture a group of question in limesurvey or would you assine a group of question a block with the 80 pictures (with 3 questions per picture). Is there any way I could fusion different questions, for example matrix and another type of question?
I hope it was understandable and I would be very glad for your support.
- Joffm
Es gibt innerhalb eines Themas unterschiedliche Fragen pro "Bild"?
Beispielsweise:
Nach "PE":
"Bitte, bringen Sie einmal diese Tiere in eine Reihenfolge bezüglich des Geschmacks"
1: Hund
2: Katze
3: Maus
4: Reh
Nach "EQ":
"Bitte, bringen Sie einmal diese Filmgenres in eine Reihenfolge bezüglich Ihrer Vorliebe"
1: Neorealismo (Fellini, de Sica,...)
2: Nouvelle Vague (Truffaut, Godard,...)
3: Italowestern (Leone, Corbucci,...,)
4: New Hollywood (Allen, Hopper,...)
Nach "PEEQ" (der Mischung aus beiden):
"Bitte, bringen Sie einmal diese Filme mit Tieren in eine Reihenfolge bezüglich Ihrer Vorliebe"
1: Bernhard und Bianca
2: Bambi
3: 101 Dalmatiner
4: Aristocats
So soll es wirklich sein? Klar, ist ein völlig "an den Haaren herbeigezogenes" Beispiel.
Wie willst Du denn hier den Einfluss des "Bildes" messen?
Die Fragen müssen doch eine Vergleichbarkeit zulassen; daher sprach ich ja schon von "Trennvariable" bei der statistischen Auswertung.
Aber egal:
Das ist ja klar; Du hast ja Anzeige "Gruppe für Gruppe" gewählt.dann erscheinen sie aber auf derselben Seite wie die Bilder
Wenn Du nun auf die Idee kommst "Na, dann zeige ich 'Frage für Frage', auch um die goldene Regel 'Eine Frage pro Seite' zu beherzigen", wird es "in die Hose" gehen, da Du die Frage "eqPool" per css versteckst.
D.h. sie ist vorhanden, aber nicht sichtbar. Sie muss auch vorhanden sein, da javascript ja auf dem Rechner des Teilnehmers läuft. Daher bleibt das Skelett - eine leere Seite mit zwei Buttons. Nicht schön.
Das könntest Du wiederum umgehen, indem Du die Verteilung nicht per javascript, sondern per ExpressionScript anlegst. (ExpressionScript läuft auf dem Server.)
Habe ich vor ein paar Tagen im englischen Teil gezeigt.
[url] forums.limesurvey.org/forum/design-issue...across-groups#258867 [/url]
Eine andere Lösung ist:
Dann machst Du eben 27 Gruppen und setzt die Bedingung aus Gruppenebene.
Jetzt musst Du nur noch dafür dafür sorgen, dass, obwohl du "Gruppe für Gruppe" anzeigst (wegen javascript), zunächst das "Bild", dann die Fragen gezeigt werden.
Gibt hier etwas Ähnliches
[url] forums.limesurvey.org/forum/design-issue...d-group-order#258174 [/url]
Hier könnte man nun den Timer durch die javascript-Funktion "timeout" ersetzen ("Tutorial 3, Gimmicks", Kap.2 - glaube ich)
Ich habe es auch ein Beispiel hier herumliegen, finde es aber im Moment nicht.
Nichtsdestotrotz: Damit nicht weitere Überraschungen kommen, wäre es gut, Du würdest den lss Export eines etwas realistischeres Beispiels schicken.
Bis dann
Joffm
- Dschounas
Jetzt hat's Klick gemacht! Ich habe die erste Variante befolgt, weil sie für mich irgendwie leichter nachvollziehbar ist.
Wenn ich die Umfrage nun starte, werden mir wie erhofft in randomisierter Reihenfolge die Themen präsentiert und dabei wird beachtet, dass jede Bedingung dreimal vorkommt. Großartig!
Jetzt habe ich aber noch eine daran anschließende Frage: Ich habe mir überlegt, dass es für die Auswertung am einfachsten wäre, wenn ich meine beiden Fragebögen, die ich zu den Bildern stellen will, an die aktuelle Struktur anpasse. Das heißt, wenn das Bild "T1PE" kommt, möchte ich dazugehörig die Fragen "F1T1PE" und "F2T1PE" stellen. Wenn das Bild "T5PEEQ" kommt, möchte ich dazugehörig die Fragen "F1T5PEEQ" und "F2T5PEEQ" stellen. Aktuell komme ich nur soweit, dass ich die Fragen in meine bestehenden Fragegruppen einbaue - dann erscheinen sie aber auf derselben Seite wie die Bilder. Das will ich eigentlich vermeiden, weil ich auch eine Zeitbegrenzung für die Betrachtung der Bilder einstellen möchte.
Somit wäre meine nächste Idee, nach der Fragegruppe "Thema 1" mit den Fragen "T1PE", "T1EQ" und "T1PEEQ" die Fragegruppe "Fragen Thema 1" mit den Fragen "F1T1PE", "F2T1PE", "F1T1EQ", "F2T1EQ", "F1T1PEEQ", "F2T1PEEQ" einzufügen - und das dementsprechend weiterführen für alle 9 Themen. Dass die Fragen "F1T1EQ" und "F2T1EQ" nur erscheinen, wenn in diesen Fragen die Bedingung eqPool_1 == "2" erfüllt ist, habe ich dank dir verstanden. Die Herausforderung ist nun, dass die Fragegruppen "Fragen Thema X" den Fragegruppen "Thema X" bei der Randomisierung folgen sollen. Gibt es dafür auch eine logische Funktion? Anders formuliert geht es darum, dass ich zwei Fragegruppen bei der Randomisierung "aneinander kopple".
Oder ist es womöglich noch einfacher und ich kann irgendwie einstellen, dass eine Art "Seitenumbruch" zwischen mehreren Fragen stattfindet? In Druckversionen ist das wohl recht simpel, aber in online-Versionen...?
Viele Grüße
Jonas
- Joffm
wenn Du javascript einsetzen kannst, genügt dies:
Füge in die erste Gruppe eine Frage vom Typ "kurzer Text" ein. (eqPool)
In den Quellcode der Frage kommt dann dieses script.
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 = ['1','1','1','2','2','2','3','3','3']; arr = shuffle(arr); $('#question{QID} input[type="text"].val(arr); }); </script>
Dann werden die Bilder angezeigt,
Thema 1
PE: substr(eqPool,0,1)=="1"
EQ: substr(eqPool,0,1)=="2"
PEEQ: substr(eqPool,0,1)=="3"
Thema 2
PE: substr(eqPool,1,1)=="1"
EQ: substr(eqPool,1,1)=="2"
PEEQ: substr(eqPool,1,1)=="3"
Thema 3
PE: substr(eqPool,2,1)=="1"
EQ: substr(eqPool,2,1)=="2"
PEEQ: substr(eqPool,2,1)=="3"
usw.
Falls Du nun den "Entscheidungswert" direkt in der Datenbank haben möchtest, z.B. um ohne große Umrechnung in Deinem Analysetool eine Trennvariable für irgendwelche statistischen Tests zu haben (K-Test, ANOVAs, etc.), kannst Du es auch auf diese Weise machen
Füge eine Frage vom Typ "mehrfache kurze Texte" (eqPool) mit 9 Teilfragen ein (1,2,3,...)
Dann iist das script ein wenig unterschiedlich
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 = ['1','1','1','2','2','2','3','3','3']; arr = shuffle(arr); $('#question{QID} input[type="text"]:eq(0).val(arr[0]); $('#question{QID} input[type="text"]:eq(1).val(arr[1]); $('#question{QID} input[type="text"]:eq(2).val(arr[2]); $('#question{QID} input[type="text"]:eq(3).val(arr[3]); $('#question{QID} input[type="text"]:eq(4).val(arr[4]); $('#question{QID} input[type="text"]:eq(5).val(arr[5]); $('#question{QID} input[type="text"]:eq(6).val(arr[6]); $('#question{QID} input[type="text"]:eq(7).val(arr[7]); $('#question{QID} input[type="text"]:eq(8).val(arr[8]); }); </script>
Thema 1
PE: eqPool_1=="1"
EQ: eqPool_1=="2"
PEEQ: eqPool_1=="3"
Thema 2
PE: eqPool_2=="1"
EQ: eqPool_2=="2"
PEEQ: eqPool_2=="3"
usw.
Joffm
- Dschounas
Ich kenne mich nicht so aus, aber auf der Website der Uni steht, dass auf dem Campus "ein eigener LimeSurvey-Server" betrieben werde, der "unabhängig von limesurvey.org und ähnlichen Cloud-Services" bestehe. Javascript scheint zu funktionieren.Zweitens: der "eigene Server" ist sicher kein eigener Server, sondern die Uni-Installation. Richtig?
Das kann wichtig sein, wenn es darum geht javascript einzusetzen.
Ich hole mal etwas weiter aus: Den Teilnehmenden werden 9 Beiträge mit unterschiedlichen Themen gezeigt (als Screenshots). Die eigentliche Manipulation, die ich in der Studie vornehme, ist die Kommunikationsstrategie, die in diesen Beiträgen genutzt wird (persönliche Erfahrung vs. Expertenquelle vs. Kombination aus beidem). Somit habe ich 9 Themen x 3 Kommunikationsstrategien = 27 Beiträge, die ich als Bilder einfüge. Jedes Bild entspricht dann einer Frage in LimeSurvey. Jede Versuchsperson soll aus diesem Pool 9 Beiträge ziehen - dabei soll jedes Thema genau einmal gezogen werden und jede Kommunikationsstrategie genau dreimal.Da es 9 Themen gibt also "ein Bild pro Thema".
Dieses Bild wird aus drei Bildern ausgewählt, die "Bedingungen".
Woher kommen die "Bedingungen"?
Und die eigentliche Frage ist: "Wie macht man es, dass man pro Bedingung genau 3 Bilder zeigt".
Also 9 Bilder, aufgeteilt in 3 / 3 / 3.
Die ISS-Datei kann ich natürlich gerne anhängen.Daher ist es immer am besten einen lss Export eines Prototypen zu schicken.
Mein aktueller Stand ist, dass ich pro Thema eine Fragegruppe erstellt habe. In jeder Gruppe sind drei Fragen enthalten, die den drei Bedingungen entsprechen (die Bilder sind noch nicht drin, weil es Uni-Intern scheinbar gerade mit dem HTML-Editor Probleme gibt. Ich kann keine Bilder hochladen, weil der Editor bei mir und keinem meiner Kommilitonen funktioniert - ist aber ein anderes Thema und darüber habe ich den Uni-Helpdesk schon informiert). Ich habe soweit randomisiert, dass die Fragegruppen in zufälliger Reihenfolge angezeigt werden und dass die Fragen innerhalb der Fragegruppen in zufälliger Reihenfolge angezeigt werden. Aber pro Fragegruppe soll ja nur eine Frage angezeigt werden und wie beschrieben sollen die Bedingungen ausbalanciert "gezogen" werden.
PS: Nicht wundern, damit ich den "Hauptteil" der Umfrage in der Vorschau gut betrachten kann, habe ich die "irrelevanten" Fragen erstmal deaktiviert, die werden in der Vorschau also nicht angezeigt.
Ich schaue mal in das Tutorial (sieht gut aus! Sowas würde ich mir von meiner Uni wünschen ) und versuche, den Thread mit ähnlichem Problem nachzuvollziehen.
Viele Grüße
Jonas
- Joffm
lass mich etwas vorwegschicken.
Das kenne ich. Nur ganz wenige Unis erstellen selbst etwas.Leider werden wir von der Uni direkt ins kalte Wasser geschmissen was LimeSurvey angeht - kein Tutorial oder gar Hilfeangebote
Ich schäme ich auch ein wenig, dass meine ehemalige Alma mater sich auch auf den Standpunkt zurückzieht "Es gibt ein Forum. Bei Fragen, bitte dort".
Oh, doch; aber nur, wenn Du Dir am Sonntag ein paar Witze erzählen lassen willst. Die Antworten von ChatGPT sind immer ein Quell der Heiterkeit.ChatGPT ist auch keine wirklich große Hilfe
Zweitens: der "eigene Server" ist sicher kein eigener Server, sondern die Uni-Installation. Richtig?
Das kann wichtig sein, wenn es darum geht javascript einzusetzen.
So, jetzt endlich zu Deiner Frage:
Da es 9 Themen gibt also "ein Bild pro Thema".dass a) jede Person 9 Bilder zu unterschiedlichen Themen sieht
Dieses Bild wird aus drei Bildern ausgewählt, die "Bedingungen".
Woher kommen die "Bedingungen"?
Und die eigentliche Frage ist: "Wie macht man es, dass man pro Bedingung genau 3 Bilder zeigt".
Also 9 Bilder, aufgeteilt in 3 / 3 / 3.
Dies ist nicht so furchteinflößend wie es klingt.geschweige denn von ExpressionScript
Schau Dir einmal mein "Tutorial 4: Gleichungen, Zufall,..." an. Hier im deutschen Forum, auf einer der folgenden Seiten, 6 oder 7.
Dort ist zwar noch nicht viel, aber Du kannst erkennen, dass es harmloser und simpler ist als befürchtet.
"Aus der Lameng" würde ich nun sagen, dass man hier ganz ohne ExpressionScript und ohne javascript auskommen könnte, sondern ausschließlich mit "Randomisierungsgruppennamen". Ich habe hier
[url] forums.limesurvey.org/forum/design-issue...roups?start=0#258867 [/url]
gerade mehrere Möglichkeiten gezeigt.
Aber alles hängt natürlich von Deinem Design ab.
Daher ist es immer am besten einen lss Export eines Prototypen zu schicken.
Also nicht unbedingt die ausformulierte Umfrage, sondern ein Skelett, welches die gewünschte Struktur aufzeigt.
Bis dann
Joffm
- Dschounas
Ihre LimeSurvey-Version: 5.6.56+240227
Eigener Server oder LimeSurvey-Cloud: eigener Server
Genutzte Designvorlage: fruity
==================
Liebe Community,
Ich wende mich nicht direkt mit einem Software-Problem, sondern viel mehr mit einem Logik-/Verständnis-Problem an euch.
Im Rahmen meiner Masterarbeit muss ich eine Umfrage erstellen. Leider werden wir von der Uni direkt ins kalte Wasser geschmissen was LimeSurvey angeht - kein Tutorial oder gar Hilfeangebote. Dementsprechend habe ich sehr wenig Ahnung hiervon (geschweige denn von ExpressionScript o.ä.). Deshalb dachte ich, dass ich es mal mit dem Forum versuche.
Folgende Situation: Ich möchte einen Fragebogen erstellen, in dem zunächst ein paar Standard-Fragen gestellt werden. Die eigentliche Studie besteht dann daraus, dass den Teilnehmenden jeweils 9 Bilder zu unterschiedlichen Themen präsentiert werden sollen. Diese Bilder entsprechen 3 verschiedenen Bedingungen. Für jedes der 9 Themen erstelle ich diese 3 Bedingungen, somit habe ich insgesamt 27 Bilder. Mein Problem liegt jetzt darin, dass ich nicht weiß, wie ich sicherstelle, dass a) jede Person 9 Bilder zu unterschiedlichen Themen sieht (die Themen dürfen sich nicht wiederholen) und b) jede der 3 Bedingungen genau 3 Mal vorkommt. Somit soll nicht jede Person jedes Thema in der gleichen Bedingung wie alle anderen Personen sehen, sondern alles soll randomisiert zugeteilt werden, aber sichergestellt werden, dass pro Person jedes Thema nur einmal vorkommt und dass jede Bedingung 3 Mal erfüllt ist.
Ich habe es natürlich schon ins Manual geschaut - leider werde ich daraus auch nicht schlau. ChatGPT ist auch keine wirklich große Hilfe, der scheint sich nicht wirklich mit der Oberfläche auszukennen.
Ich hoffe, dass der Gedanke klar geworden ist und wäre unendlich dankbar, wenn jemand bereit wäre, mir zu helfen.
Falls noch Informationen fehlen, tut mir das Leid - die liefere ich natürlich gerne nach.
Herzliche Grüße
Jonas
- DenisChenu
- rita.c
I really appreciate your help, thanks a million! The third option works perfectly and the process is easier to understand since I'm not very familiar with strings and equations.
All the best (really ),
Rita
- Joffm
as promised, my solutions.
I send three different solutions in ascending order
1. This survey maintains your "question by question" design.
But you have to pay for it.
To calculate the 3x8 displayed questions you need 96 equations.. This way the progressbar starts at about 70% (Do not show it.)
2. The other suveys are displayed in "group by group" design.
But to keep the "golden rule" of online surveys (one question per page) there is only one question in each group.
The advantage is, that now you can place all equations in one question and use a "container" to store the interim results.
Both use the same idea to calculate your questions.
First we create a string "ABCDEFGHabcdefgh" (8 capital letters and 8 small letters to symbolize the 8 pairs)
Now we start by creating a random number from 1 to the length of the string (1-16). Let's say, we get 12.
We grab the letter at position 12 ("d") and store it.
Now we remove both this lowercase letter "d" and the uppercase letter "D".
The remaining string is "ABCEFGHabcefgh"
And we start again by creating a random number from 1 to the length of the string (now 1-14)
At the end we jopin all single letter to the result string ("sRes") like "#dCHaBGeF"
And later we display the questions with the condition "strpos(sRes,'d')>0".
Meaning if the string contains the letter, the question is displayed.
The "#" is used to avoid a result of "0".; "strpos" starts counting at "0".
But "0" also means "not found".
3. This idea is similar to your first with the two groups (one visible, one hidden)
But here each pair of groups only contains the two paired questions.
Because of the same randomization group name of the question one of them is displayed.
And all groups get the same randomization group name on group level.
So all are displayed in randomized order.
Disadvantage: In groups "negative" and "positive" there are 9 pairs. So
9 questions are displayed
You could avoid this by counting the appearance.
In my opinion the last is the best.
But I wanted to show all three (to be honest: the last came to my mind after I had completed the first two), that you may learn some techniques, some options for your further development of surveys.
Joffm
- Joffm
Yes, this is.So, if T1n is shown (group "target"), the correspondent T1p (group "target hidden") should not be displayed. I have a feeling this is very complicated...
My rough idea is:
Create a string with 8 pairs of elements (16 in total)
Create a random number from 1 to the length of the string
Capture the element
Remove the element AND the corresponding element
Create a random number from 1 to the length of the (now shorter) string
Capture the element
Remove the element AND the corresponding element
...
We'll see.
Joffm
- rita.c
In the version to be administered, I'll need 8 target questions taken from "target" and "target hidden"; 9 negative taken from "negative" and "negative hidden"; and 9 positives taken from "positive" and "positive hidden".
The hidden version has the same questions but a slightly different text. So, if T1n is shown (group "target"), the correspondent T1p (group "target hidden") should not be displayed. I have a feeling this is very complicated...
- Joffm
yeah, university installation. They usually forbid javascript.
Bad luck, because I had a short nice solution.
So we go with the equations.
It will be a bit longer, but fortunately it is rather straightforward.
I will create it and send your survey back; but please allow some time.
Now I have to go and buy something for our evening meal.
Till tomorrow morning.
Joffm
- rita.c