Welcome to the LimeSurvey Community Forum

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

Teilfragen randomisieren mit ausnahmen

  • Ildelmloi_249477
  • Ildelmloi_249477's Avatar Topic Author
  • Offline
  • Banned
  • Banned
More
1 year 5 months ago #233128 by Ildelmloi_249477
Teilfragen randomisieren mit ausnahmen was created by Ildelmloi_249477
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: Version 5.4.7
Eigener Server oder LimeSurvey-Cloud: LimeSurvey-Cloud
Genutzte Designvorlage: Erben [fruity]
==================
Hallo :)

ich muss bei einer Matrix-Frage die Teilfragen (a bis h) randomisieren mit der Ausnahme von a und e... leider konnte ich online nicht herausfinden wie das geht :(

Ich hoffe jemand hier kann mir weiterhelfen.

Ich bedanke mich schon im Voraus!!

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 5 months ago #233148 by Joffm
Replied by Joffm on topic Teilfragen randomisieren mit ausnahmen
Hier würde ich ganz pragmatisch vorgehen.
Zunächst: Wenn du diese sechs Items randomisierst, hast Du 720 verschiedene Möglichkeiten.
Jetzt kannst Du einmal ausrechnen. wieviele Teilnehmer Du benötigst, um alle diese Möglichkeiten mindestens einmal zu erhalten.

Daher:
Bilde vier Fragen mit festen, aber unterschiedlichen Reihenfolgen, z.B.
1: a,b,c,d,e,f,g,h
2: a,h,g,f,e,d,c,b
3: a.b,g,c,e,d,f,h
4: a,f,g,b,e,c,h,d
oder irgendwie so ähnlich.
Hierbei würde ich die Codes der einzelnen immer identisch lassen, da es das spätere Umstrukturieren für die Auswertung erleichtert
Dann am Anfang eine Zufallszahl {if(is_empty(zufall),rand(1,4),zufall)}
und eine der Fragen mittels Bedingung einblenden.

Und jetzt kommt die sophisticated Lösung.
Benutze tayloring.
In einer Frage vom Typ "kurzer Text" (sie möge QText heißen) folgendes script
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 with your prices
      var arr = [2,3,4,6,7,8];
 
// Shuffle the array
      arr = shuffle(arr);
 
// Pick only the first element of the array
      arr = arr.join('');
// Fill the question with this element
      $('#question{QID} input[type="text"]').val(arr);
// After testing hide the question by removing the slashes of the next line
//    $('#question{QID}').hide();
   });
</script>

Das sieht dann so aus
 
Dann kannst Du nacheinander die Zeichen dieses Strings herausgreifen (mit der Funktion "substr") und in den Teilfragentext mit einem verschachtelten IF den entsprechenden Text einblenden, wie
1. Teilfrage ist ja klar, das ist a
2. Teilfrage (Zeilenumbrüche nur zum besseren Lesen, dürfen im Code nicht enthalten sein)
{if(substr(QText,0,1)=="2","Text Frage b",
   if(substr(QText,0,1)=="3","Text Frage c",
      if(substr(QText,0,1)=="4","Text Frage d",
         if(substr(QText,0,1)=="6","Text Frage f",
            if(substr(QText,0,1)=="7","Text Frage g","Text Frage h"
)))))}
Bei der dritten Teilfrage wird dann das zweite Element des Textes genommen, also "substr(QText,1,1)", usw.
Später sieht man dann in QText, in welcher Reihenfolge die Fragen angezeigt wurden.

Geht, ist aber etwas Mühe beim Umstrukturieren; es sei denn, man macht sich ein kleines Makro in EXCEL

Joffm



 

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

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 5 months ago #233186 by holch
Replied by holch on topic Teilfragen randomisieren mit ausnahmen
Warum wurde die gleiche Fragen zweimal gestellt, unter unterschiedlichen Nutzernamen?

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose