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
  • Fausamtt_215043's Avatar Topic Author
  • Offline
  • Banned
  • Banned
More
4 years 2 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!
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 2 months ago - 4 years 2 months ago #192714 by Joffm
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)
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==3, "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.

File Attachment:

File Name: limesurvey...1-15.lss
File Size:30 KB

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 2 months ago by Joffm.
The topic has been locked.
  • Fausamtt_215043
  • Fausamtt_215043's Avatar Topic Author
  • Offline
  • Banned
  • Banned
More
4 years 2 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 :)
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 2 months ago #192729 by Joffm

Diese Routen sind mit Attributen charakterisiert, die in Tabellenform aufgeführt sind.

Toll, da hättest Du aber auch einmal eine Skizze anhängen können.

Dazu habe ich einen Pool von ungefähr 100 Alternativen

Es gibt also schon 100 Tabellen, aus denen ausgewählt wird?

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
  • Fausamtt_215043's Avatar Topic Author
  • Offline
  • Banned
  • Banned
More
4 years 2 months ago - 4 years 2 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 :)
Last edit: 4 years 2 months ago by Fausamtt_215043. Reason: Teil der Frage hat sich schon erledigt
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 2 months ago - 4 years 2 months ago #192740 by Joffm
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:

File Attachment:

File Name: limesurvey...7519.lss
File Size:39 KB

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
Last edit: 4 years 2 months ago by Joffm.
The topic has been locked.
  • Fausamtt_215043
  • Fausamtt_215043's Avatar Topic Author
  • Offline
  • Banned
  • Banned
More
4 years 2 months ago #192741 by Fausamtt_215043
Replied by Fausamtt_215043 on topic Zufällige Auswahl von Antwortoptionen und Fragen
Hi,
klar, bei Antwortoptionen habe ich den Editor, aber eben nicht bei Vorgabe-Antwortoptionen bearbeiten...



Und ja, es ist eine Uni-Version :laugh:
Da fehlt mir gerade irgendwie die Verbindung, wie ich dann die Tabellen da rein bekomme ;)
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 2 months ago #192751 by Joffm
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

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Fausamtt_215043
  • Fausamtt_215043's Avatar Topic Author
  • Offline
  • Banned
  • Banned
More
4 years 2 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?
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 2 months ago - 4 years 2 months ago #192761 by Joffm

dass die Texte eine bestimme Länge haben dürfen? Und die lege ich in dem Snippet fest, oder wo?

In meinem Beispiel nicht "dürfen", sondern "müssen".
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 2 months ago by Joffm.
The topic has been locked.
  • Fausamtt_215043
  • Fausamtt_215043's Avatar Topic Author
  • Offline
  • Banned
  • Banned
More
4 years 2 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...
Attachments:
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
4 years 2 months ago #192772 by Joffm
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.

Von daher kommt mir das mit einer festgelegten Zeichenlänge leider etwas schwierig vor...

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.

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

Lime-years ahead

Online-surveys for every purse and purpose