- Posts: 8
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Zufällige Auswahl von Antwortoptionen und Fragen
- Fausamtt_215043
- Topic Author
- Offline
- Banned
Less
More
4 years 3 months ago #192704
by Fausamtt_215043
Zufällige Auswahl von Antwortoptionen und Fragen was created by Fausamtt_215043
Hallo,
ich bin ein hoffnungsloser Beginner bei LimeSurvey und ich hoffe, ihr könnt mir helfen.
Mein Anliegen ist folgendes: ich möchte erreichen, dass der Proband zwischen zwei Alternativen wählt.
Dazu habe ich einen Pool von ungefähr 100 Alternativen. Insgesamt soll zehnmal zwischen zwei Alternativen gewählt werden.
Entsprechend ist es also notwendig, dass in zehn Fragen jeweils zwei Alternativen aus dem Pool zufällig ausgewählt werden und die Antwortoptionen der Frage sozusagen zusammengewürfelt werden.
Gibt es dafür eine Lösung in LimeSurvey?
Vielen Dank schon Mal für eure Hilfe!
ich bin ein hoffnungsloser Beginner bei LimeSurvey und ich hoffe, ihr könnt mir helfen.
Mein Anliegen ist folgendes: ich möchte erreichen, dass der Proband zwischen zwei Alternativen wählt.
Dazu habe ich einen Pool von ungefähr 100 Alternativen. Insgesamt soll zehnmal zwischen zwei Alternativen gewählt werden.
Entsprechend ist es also notwendig, dass in zehn Fragen jeweils zwei Alternativen aus dem Pool zufällig ausgewählt werden und die Antwortoptionen der Frage sozusagen zusammengewürfelt werden.
Gibt es dafür eine Lösung in LimeSurvey?
Vielen Dank schon Mal für eure Hilfe!
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12937
- Thank you received: 3979
4 years 3 months ago - 4 years 3 months ago #192714
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Zufällige Auswahl von Antwortoptionen und Fragen
Gut, um es zu verstehen:
Du hast irgendwo 100 Alternativen, kurz gesagt:
lang, kurz, dick, dünn, oben, unten, schmal, breit,...
Nun stellst Du 10 Fragen mit zwei Antwortmöglichkeiten, die zufällig aus den 100 genommen sind, wie
1: dünn - oben
2: lang - breit
...
Dabei können bereits einmal verwendete Alternativen auch ein zweites Mal auftauchen.
Dies könntest Du z.B. so bewerkstelligen.
In eine Frage vom Typ "kurzer Text" fügst Du dieses kleine javascript-snippet ein:
(Ich habe das Array nur bis 30 gefüllt, das müsstest Du eben bis zur Anzahl Deiner Alternativen erweitern)
Damit erhältst Du schon einmal Folgendes:
also zwei Indizes für Deine Alternativen.
In einer Frage vom Type "langer Text" (LT) könntest Du nun als Vorgabewerte Deine Alternativen eintragen.
Durch das "#" will ich zeigen, dass alle Texte die gleiche Länge haben - mit Leerzeichen aufgefüllt.
Nun kannst Du Dir mithilfe der eingebauten Stringfunktionen Deinen ausgewählten Text herausholen.
Dies widerholst Du einfach 10mal.
Andererseits kannst Du natürlich auch alles in eine große IF-Abfrage packen:
Zunächst erstellen wir wieder eine Frage von Typ Gleichung (eq1) um die erste Zahl zu finden, also
{substr(Q1,2,2)} Obwohl der string ja #,25,20 lautet, beginnt unsere Zahl an der Stzelle 2, da die Funktion "substr" bei "0" anfängt.
Dann könnte man schreiben:
{if(eq1==1,"lang",if(eq1==2,"kurz",if(eq1=, "dick",if(eq1==4, "dünn",if(eq1==5, "oben",if(eq1==6, "unten",if(eq1==7, "schmal",if(eq1==8,"breit",...))))...}
Das ist wohl nicht so günstig, da Du dann 100 schließende Klammern am Ende hast.
Um sogar sicherzustellen, dass keine Alternative zweimal vorkommt, könntest Du den javascript-Teil ändern, indem Du gleich 20 Zahlen auswählst. Einfach dies Zeile ändern anumbers = arr.slice(0,20).join(',');
So, dass ist erst einmal ein Überblick.
Ich werde noch einmal nachdenken und nach Deinem Input, gerade was die "Alternativen" angeht, ein Beispiel machen.
Joffm
P.S.
Ich habe noch ein kleines Beispiel gemacht, aber nur 5 Vergleiche aus 50.
Aber Du siehst, wie es gehen kann.
Man muss beachten: Obwohl die Texte nur 10 Zeichen lang sind, geht die Formel von 12 Zeichen aus. (Klar, Carriage Return + LineFeed)
Du hast irgendwo 100 Alternativen, kurz gesagt:
lang, kurz, dick, dünn, oben, unten, schmal, breit,...
Nun stellst Du 10 Fragen mit zwei Antwortmöglichkeiten, die zufällig aus den 100 genommen sind, wie
1: dünn - oben
2: lang - breit
...
Dabei können bereits einmal verwendete Alternativen auch ein zweites Mal auftauchen.
Dies könntest Du z.B. so bewerkstelligen.
In eine Frage vom Typ "kurzer Text" fügst Du dieses kleine javascript-snippet ein:
(Ich habe das Array nur bis 30 gefüllt, das müsstest Du eben bis zur Anzahl Deiner Alternativen erweitern)
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 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]; arr = shuffle(arr); anumbers = arr.slice(0,2).join(','); $('#question{QID} input[type="text"]').val("#,"+anumbers+","); // Um die Frage zu verstecken, natürlich aktivieren // $('#question{QID}').hide(); }); </script>
Damit erhältst Du schon einmal Folgendes:
also zwei Indizes für Deine Alternativen.
In einer Frage vom Type "langer Text" (LT) könntest Du nun als Vorgabewerte Deine Alternativen eintragen.
Durch das "#" will ich zeigen, dass alle Texte die gleiche Länge haben - mit Leerzeichen aufgefüllt.
Nun kannst Du Dir mithilfe der eingebauten Stringfunktionen Deinen ausgewählten Text herausholen.
Dies widerholst Du einfach 10mal.
Andererseits kannst Du natürlich auch alles in eine große IF-Abfrage packen:
Zunächst erstellen wir wieder eine Frage von Typ Gleichung (eq1) um die erste Zahl zu finden, also
{substr(Q1,2,2)} Obwohl der string ja #,25,20 lautet, beginnt unsere Zahl an der Stzelle 2, da die Funktion "substr" bei "0" anfängt.
Dann könnte man schreiben:
{if(eq1==1,"lang",if(eq1==2,"kurz",if(eq1=, "dick",if(eq1==4, "dünn",if(eq1==5, "oben",if(eq1==6, "unten",if(eq1==7, "schmal",if(eq1==8,"breit",...))))...}
Das ist wohl nicht so günstig, da Du dann 100 schließende Klammern am Ende hast.
Um sogar sicherzustellen, dass keine Alternative zweimal vorkommt, könntest Du den javascript-Teil ändern, indem Du gleich 20 Zahlen auswählst. Einfach dies Zeile ändern anumbers = arr.slice(0,20).join(',');
So, dass ist erst einmal ein Überblick.
Ich werde noch einmal nachdenken und nach Deinem Input, gerade was die "Alternativen" angeht, ein Beispiel machen.
Joffm
P.S.
Ich habe noch ein kleines Beispiel gemacht, aber nur 5 Vergleiche aus 50.
Aber Du siehst, wie es gehen kann.
Man muss beachten: Obwohl die Texte nur 10 Zeichen lang sind, geht die Formel von 12 Zeichen aus. (Klar, Carriage Return + LineFeed)
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 4 years 3 months ago by Joffm.
The topic has been locked.
- Fausamtt_215043
- Topic Author
- Offline
- Banned
Less
More
- Posts: 8
- Thank you received: 0
4 years 3 months ago #192727
by Fausamtt_215043
Replied by Fausamtt_215043 on topic Zufällige Auswahl von Antwortoptionen und Fragen
Erst einmal vielen Dank für die ausführlich und schnelle Antwort, super!
Ich muss für meine Diplomarbeit die Wahlentscheidung zwischen zwei Routen abprüfen.
Diese Routen sind mit Attributen charakterisiert, die in Tabellenform aufgeführt sind. Diese Tabellen sollen sich gegenüberstehen. Also statt des von dir angeführten Beispieles dick - dünn dann Tabelle der Route 1 gegen Tabelle der Route 2.
Das Beispiel schaue ich mir morgen mal an und schaue, wie ich das verwursten kann. Nochmals vielen Dank
Ich muss für meine Diplomarbeit die Wahlentscheidung zwischen zwei Routen abprüfen.
Diese Routen sind mit Attributen charakterisiert, die in Tabellenform aufgeführt sind. Diese Tabellen sollen sich gegenüberstehen. Also statt des von dir angeführten Beispieles dick - dünn dann Tabelle der Route 1 gegen Tabelle der Route 2.
Das Beispiel schaue ich mir morgen mal an und schaue, wie ich das verwursten kann. Nochmals vielen Dank
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12937
- Thank you received: 3979
4 years 3 months ago #192729
by Joffm
Dann bleibt ja alles mehr oder weniger beim Alten.
Ob es nun "dick vs. dünn" ist oder zwei Tabellen verglichen werden, ist ja nur eine Frage des Layouts.
Außerdem sieht das Ganze ja irgendwie nach conjoint aus.
Es gibt zwar ein recht gutes conjoint-Layout hier im Forum (suche einmal nach user RitaChen), dies ist aber statisch.
Kann man wohl aber evtl. umbauen. Muss ich mir einmal anschauen.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Zufällige Auswahl von Antwortoptionen und Fragen
Toll, da hättest Du aber auch einmal eine Skizze anhängen können.Diese Routen sind mit Attributen charakterisiert, die in Tabellenform aufgeführt sind.
Es gibt also schon 100 Tabellen, aus denen ausgewählt wird?Dazu habe ich einen Pool von ungefähr 100 Alternativen
Dann bleibt ja alles mehr oder weniger beim Alten.
Ob es nun "dick vs. dünn" ist oder zwei Tabellen verglichen werden, ist ja nur eine Frage des Layouts.
Außerdem sieht das Ganze ja irgendwie nach conjoint aus.
Es gibt zwar ein recht gutes conjoint-Layout hier im Forum (suche einmal nach user RitaChen), dies ist aber statisch.
Kann man wohl aber evtl. umbauen. Muss ich mir einmal anschauen.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- Fausamtt_215043
- Topic Author
- Offline
- Banned
Less
More
- Posts: 8
- Thank you received: 0
4 years 3 months ago - 4 years 3 months ago #192735
by Fausamtt_215043
Replied by Fausamtt_215043 on topic Zufällige Auswahl von Antwortoptionen und Fragen
Hallo Joffm,
ich habe mir jetzt das Beispiel angesehen und bin sehr zufrieden mit der Funktion!
Und dann habe ich noch das Problem, wie ich die Tabellenformatierung dann bei den Vorgabeantworten hinbekomme... da ist ja kein Editor oder so etwas...?
Vielen Dank für deine Hilfe
ich habe mir jetzt das Beispiel angesehen und bin sehr zufrieden mit der Funktion!
Und dann habe ich noch das Problem, wie ich die Tabellenformatierung dann bei den Vorgabeantworten hinbekomme... da ist ja kein Editor oder so etwas...?
Vielen Dank für deine Hilfe
Last edit: 4 years 3 months ago by Fausamtt_215043. Reason: Teil der Frage hat sich schon erledigt
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12937
- Thank you received: 3979
4 years 3 months ago - 4 years 3 months ago #192740
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Zufällige Auswahl von Antwortoptionen und Fragen
Hallo,
natürlich ist da ein Editor (falls Du nicht gerade auf einer Uni-Installation arbeitest und ein übereifriger Admin es geschafft hat, Euch zu kastrieren.)
Nämlich hier:
Du kannst Dir aber auch einmal diesen Link anschauen:
www.limesurvey.org/forum/can-i-do-this-w...ions-in-a-box#184039
Das von mir gezeigte Layout findest Du hier im Beispiel:
Es ist zwar dreispaltig, aber das kannst Du ja leicht anpassen.
Und es gibt noch die Beispielstudie von RitaShen hier (nur ihr lss export):
www.limesurvey.org/forum/can-i-do-this-w...oint-analysis#185681
Die Texte sind zwar chinesisch, aber HTML und javascript ist international.
Viel Erfolg
Joffm
natürlich ist da ein Editor (falls Du nicht gerade auf einer Uni-Installation arbeitest und ein übereifriger Admin es geschafft hat, Euch zu kastrieren.)
Nämlich hier:
Du kannst Dir aber auch einmal diesen Link anschauen:
www.limesurvey.org/forum/can-i-do-this-w...ions-in-a-box#184039
Das von mir gezeigte Layout findest Du hier im Beispiel:
Es ist zwar dreispaltig, aber das kannst Du ja leicht anpassen.
Und es gibt noch die Beispielstudie von RitaShen hier (nur ihr lss export):
www.limesurvey.org/forum/can-i-do-this-w...oint-analysis#185681
Die Texte sind zwar chinesisch, aber HTML und javascript ist international.
Viel Erfolg
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:
Last edit: 4 years 3 months ago by Joffm.
The topic has been locked.
- Fausamtt_215043
- Topic Author
- Offline
- Banned
Less
More
- Posts: 8
- Thank you received: 0
4 years 3 months ago #192741
by Fausamtt_215043
Replied by Fausamtt_215043 on topic Zufällige Auswahl von Antwortoptionen und Fragen
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12937
- Thank you received: 3979
4 years 3 months ago #192751
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Zufällige Auswahl von Antwortoptionen und Fragen
Ach das meintest Du.
Naja, dann musst Du es halt mit der Hand schreiben.
Das würde ich auf jeden Fall vorziehen, denn der eingebaute Editor schreibt sehr umständlichen HTML-Code.
Da ja die Tabellen alle dasselbe Gerüst haben, nur die Texte ändern sich, oder??, kannst Du das ja schnell in irgendeinem guten Editor, wie Notepad++, oder so einmal konstruieren, und dann einfach runterkopieren. Danach dann die Texte einfügen.
Und schlussendlich alles in die Vorgabe hineinkopieren.
Du kannst ja auch den hier eingebauten Editor nehmen, die Tabelle konstruieren, den Quellcode wieder in Notepad++ o.ä. hineinkopieren, runterkopieren, Texte einfügen,...
Mir fällt noch ein: Möglicherweise musst Du die Tabelle gar nicht in der Vorgabe haben, sondern nur die Texte (diese aber wohldefiniert, Gesamtlänge immer 500 (oder so), Länge jedes Einzeltextes 100.
Da machst Du zehn Fragen mit dem Tabellengerüst; mittels EM werden die Texte hineingesetzt.
Dazu solltest Du aber endlich einmal ein sample projekt als lss export schicken.
Bis dann
Joffm
Naja, dann musst Du es halt mit der Hand schreiben.
Das würde ich auf jeden Fall vorziehen, denn der eingebaute Editor schreibt sehr umständlichen HTML-Code.
Da ja die Tabellen alle dasselbe Gerüst haben, nur die Texte ändern sich, oder??, kannst Du das ja schnell in irgendeinem guten Editor, wie Notepad++, oder so einmal konstruieren, und dann einfach runterkopieren. Danach dann die Texte einfügen.
Und schlussendlich alles in die Vorgabe hineinkopieren.
Du kannst ja auch den hier eingebauten Editor nehmen, die Tabelle konstruieren, den Quellcode wieder in Notepad++ o.ä. hineinkopieren, runterkopieren, Texte einfügen,...
Mir fällt noch ein: Möglicherweise musst Du die Tabelle gar nicht in der Vorgabe haben, sondern nur die Texte (diese aber wohldefiniert, Gesamtlänge immer 500 (oder so), Länge jedes Einzeltextes 100.
Da machst Du zehn Fragen mit dem Tabellengerüst; mittels EM werden die Texte hineingesetzt.
Dazu solltest Du aber endlich einmal ein sample projekt als lss export schicken.
Bis dann
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- Fausamtt_215043
- Topic Author
- Offline
- Banned
Less
More
- Posts: 8
- Thank you received: 0
4 years 3 months ago #192754
by Fausamtt_215043
Replied by Fausamtt_215043 on topic Zufällige Auswahl von Antwortoptionen und Fragen
Im Prinzip soll das ja genau so laufen, wie in deinem ersten Beispiel. Darum ist es ja schwierig, dir ein eigenes Beispiel zu schicken, verstehst du?
Nur, wenn ich das richtig verstanden habe, läuft das Ganze in der Antwortvorgabe ja so, dass die Texte eine bestimme Länge haben dürfen? Und die lege ich in dem Snippet fest, oder wo?
Nur, wenn ich das richtig verstanden habe, läuft das Ganze in der Antwortvorgabe ja so, dass die Texte eine bestimme Länge haben dürfen? Und die lege ich in dem Snippet fest, oder wo?
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12937
- Thank you received: 3979
4 years 3 months ago - 4 years 3 months ago #192761
by Joffm
Und die Länge wird in den Antwortoptionen festgelegt: {substr(H1,(substr(Q1,0,2)-1)*,12,10)}
In diesem Falle beide Male "10 Zeichen lang", allerdings - wie bereits gesagt - die "12" rührt daher, dass am Ende jedes Strings noch ein CR/LF steht.
Theoretisch könnte man das Ganze auch in eine Zeile schreiben; dann würde dort zweimal "10" stehen.
Und man kann natürlich - um auf meinen vorigen Beitrag zurückzukommen - , eine doppelte Auswahl treffen.
Irgendwie so:
{trim(substr(substr(H1,(substr(Q1,0,2)-1)*502,500),0,100))} Erste 100 Zeichen des 1. 500 Zeichen langen Textes.
{trim(substr(substr(H1,(substr(Q1,4,2)-1)*502,500),100,100))} Zweite 100 Zeichen des 3. 500 Zeichen langen Textes.
Natürlich noch ein "trim" darumherum, damit die am Ende vorhandenen Leerzeichen entfernt werden.
Was ich meine:
Du kannst doch einfach einmal - meinetwegen - aufzeichen, wie so eine Frage überhaupt aussehen soll.
Ich kann mir immer noch nichts unter "Routen" und "Attributen" vorstellen.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Zufällige Auswahl von Antwortoptionen und Fragen
In meinem Beispiel nicht "dürfen", sondern "müssen".dass die Texte eine bestimme Länge haben dürfen? Und die lege ich in dem Snippet fest, oder wo?
Und die Länge wird in den Antwortoptionen festgelegt: {substr(H1,(substr(Q1,0,2)-1)*,12,10)}
In diesem Falle beide Male "10 Zeichen lang", allerdings - wie bereits gesagt - die "12" rührt daher, dass am Ende jedes Strings noch ein CR/LF steht.
Theoretisch könnte man das Ganze auch in eine Zeile schreiben; dann würde dort zweimal "10" stehen.
Und man kann natürlich - um auf meinen vorigen Beitrag zurückzukommen - , eine doppelte Auswahl treffen.
Irgendwie so:
{trim(substr(substr(H1,(substr(Q1,0,2)-1)*502,500),0,100))} Erste 100 Zeichen des 1. 500 Zeichen langen Textes.
{trim(substr(substr(H1,(substr(Q1,4,2)-1)*502,500),100,100))} Zweite 100 Zeichen des 3. 500 Zeichen langen Textes.
Natürlich noch ein "trim" darumherum, damit die am Ende vorhandenen Leerzeichen entfernt werden.
Was ich meine:
Du kannst doch einfach einmal - meinetwegen - aufzeichen, wie so eine Frage überhaupt aussehen soll.
Ich kann mir immer noch nichts unter "Routen" und "Attributen" vorstellen.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 4 years 3 months ago by Joffm.
The topic has been locked.
- Fausamtt_215043
- Topic Author
- Offline
- Banned
Less
More
- Posts: 8
- Thank you received: 0
4 years 3 months ago #192766
by Fausamtt_215043
Replied by Fausamtt_215043 on topic Zufällige Auswahl von Antwortoptionen und Fragen
Im Anhang habe ich dir mal angehängt, wie ich mir diese Tabellen vorstellen könnte.
Die Eigenschaften der Routen rotieren dann natürlich entsprechend und haben unterschiedliche Werte.
Von daher kommt mir das mit einer festgelegten Zeichenlänge leider etwas schwierig vor...
Die Eigenschaften der Routen rotieren dann natürlich entsprechend und haben unterschiedliche Werte.
Von daher kommt mir das mit einer festgelegten Zeichenlänge leider etwas schwierig vor...
Attachments:
The topic has been locked.
- Joffm
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 12937
- Thank you received: 3979
4 years 3 months ago #192772
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Zufällige Auswahl von Antwortoptionen und Fragen
Hallo,
als erstes solltest Du versuchen, die Tabellen zu standardisieren.
Z.B.
In Deinem Beispiel ist es ja etwas verwirrend, dass in einer Tabelle "auf dem Radfahrstreifen,Gehweg, gemeinsamen Geh- und Radweg" als eine Kategorie auftauchen in der anderen aber getrennt sind.
Und wenn Du die Tabellen so aufbaust, kannst Du ja gut das Gerüst der beiden conjoint-Beispiele nehmen.
Ich werde morgen - aber erst am Nachmittag - ein Beispiel machen.
Joffm
als erstes solltest Du versuchen, die Tabellen zu standardisieren.
Z.B.
In Deinem Beispiel ist es ja etwas verwirrend, dass in einer Tabelle "auf dem Radfahrstreifen,Gehweg, gemeinsamen Geh- und Radweg" als eine Kategorie auftauchen in der anderen aber getrennt sind.
Das ist es natürlich nicht; da nimmt man einfach die Länge des längsten Einzelwertes. Mit "trim" werden ja später die Leerstellen entfernt.Von daher kommt mir das mit einer festgelegten Zeichenlänge leider etwas schwierig vor...
Und wenn Du die Tabellen so aufbaust, kannst Du ja gut das Gerüst der beiden conjoint-Beispiele nehmen.
Ich werde morgen - aber erst am Nachmittag - ein Beispiel machen.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
Moderators: Joffm