Doppelte Zufallsauswahl basierend auf Mehrfachantwort

More
1 week 1 day ago #212343 by Nessias
Hallo liebes Forum,

ich habe folgendes Problem:
Im Anschluss an eine Mehrfachantwort (Nutzung von versch. Angeboten) möchte ich gern eine Bewertung anschließen. Dabei sollen im Falle, dass bei der Mehrfachantwort 3 oder mehr "Angebote" angekreuzt wurden, 2 dieser "Angebote" zufällig ausgewählt und dann bewertet werden.
Ich schaffe es schon, ein Angebot zufällig auszuwählen, aber das zweite fehlt mir noch.
Momentan folge ich einem Vorschlag von "Joffm" und gehe wie folgt vor:
(@Joffm: Vielen Dank nochmal für die Hilfe damals)

- join-Statement zur Erstellung eines Strings mit den Codes aller genutzen Angebote
- count-Statement zur Feststellung, wie viele Angebote überhaupt genutzt wurden
- erstellen einer Zufallszahl zwischen 1 und der Anzahl genutzter Angebote
- substr-Statement um das zufällig ausgewählte Angebot aus dem zu Beginn erstellten String auszuschneiden.

Meine Idee wäre nun, einen weiteren String zu erstellen, der sozusagen das erste zufällig ausgewählte Angebot nicht mehr enthält und dann die 3 letzten Schritte von oben zu wiederholen.
Also dann wieder count - Zufallszahl - ausschneiden - fertig.
Nun meine Frage:
Wie kann ich aus dem ersten String den Code, den ich durch die Zufallsauswahl ausgewählt habe, ausschneiden, um die Prozedur zu wiederholen? Gelingt das über einen weiteren substr-Befehl?

Vielen Dank schon mal im Voraus.

Beste Grüße
Nessias

Please Log in to join the conversation.

LimeSurvey Partners
More
1 week 1 day ago - 1 week 1 day ago #212347 by Nessias

Meine Idee wäre nun, einen weiteren String zu erstellen, der sozusagen das erste zufällig ausgewählte Angebot nicht mehr enthält und dann die 3 letzten Schritte von oben zu wiederholen.Also dann wieder count - Zufallszahl - ausschneiden - fertig.

Oder kann ich einfach zwei Zufallszahlen ausgeben lassen? Geht doch sicher auch. Und dann beide Zufallszahlen ausschneiden.

Ich arbeite übrigens mit LS Version 3.23.7+201006
 
Last edit: 1 week 1 day ago by Nessias.

Please Log in to join the conversation.

More
1 week 1 day ago - 1 week 1 day ago #212362 by Joffm
Hallo,

Meine Idee wäre nun, einen weiteren String zu erstellen, der sozusagen das erste zufällig ausgewählte Angebot nicht mehr enthält und dann die 3 letzten Schritte von oben zu wiederholen.
Also dann wieder count - Zufallszahl - ausschneiden - fertig.
Nun meine Frage:
Wie kann ich aus dem ersten String den Code, den ich durch die Zufallsauswahl ausgewählt habe, ausschneiden, um die Prozedur zu wiederholen? Gelingt das über einen weiteren substr-Befehl?

Schau einmal hier - sogar für drei Objekte
forums.limesurvey.org/forum/german-forum...zufallszahlen#209701

Punkt 2 ist der Entscheidende.
Und eqBase1 enthält eben nur den string mit den ausgewählten Objekten.


Oder Du verwurstest eines dieser beiden Beispiele.
 

File Attachment:

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

Frag mich aber nichts Genaueres darüber! Ich verstehe sie nur zur Hälfte (und das ist geprahlt).
Ich bin eben gut in "Gleichungen", javascript ist nicht so mein Freund.

Joffm
 


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:
Last edit: 1 week 1 day ago by Joffm.

Please Log in to join the conversation.

More
1 week 18 hours ago - 1 week 18 hours ago #212402 by Nessias
Hallo Joffm,

weider einmal vielen lieben Dank für die schnelle und hilfreiche Antwort.
Ich kann das Beispiel sogar größtenteils nachvollziehen.
Leider muss sich bei mir irgendwo ein Fehler eingeschlichen haben. Der erste String funktioniert, die erste Zufallsauswahl auch. Die erste Zahl, die ausgegeben werden soll, wird jedoch offensichtlich nicht korrekt gezogen, sodass im Anschluss dann auch der zweite String, der ja die erste Zufallszahl nicht mehr enthalten soll, auch nicht korrekt erstellt wird.
Das Ergebnis sieht bei mir wie folgt aus (ich hab den jeweiligen Code immer als Hinweis in der Frage notiert, damit man die Rechenschritte besser nachvollziehen kann): s. Screenshot

Die genutzen Angebote, aus denen schließlich zwei zufällig ausgewählt werden sollten, sind in diesem Beispiel der Einfachheit halber die 1, 2, 3 und 4.
Wie gesagt, der Fehler liegt ganz offensichtlich bei der Variable eqZahl1. Da hier keine angezeigt wird, gehe ich davon aus, dass auch keine erstellt wird. Folglich können die anschließenden Schritte ebenfalls nicht richtig ausgeführt werden.
Hier die Gleichungen zu den 6 Variablen (ich habe sie aus dem von Dir gesendenten Beispiel übertragen forums.limesurvey.org/forum/german-forum...zufallszahlen#209701):

eqBase1: {join(if(F4_1 == "Y","1",""),if(F4_2 == "Y","2",""), if(F4_3 == "Y","3",""), if(F4_4 == "Y","4",""), if(F4_5 == "Y","5",""), if(F4_6 == "Y","6",""), if(F4_7 == "Y","7",""), if(F4_8 == "Y","8",""))}
eqRand1: {if(is_empty(eqRand1),rand(1,strlen(eqBase1)),eqRand1)}
eqZahl1: {substr(eqBase1,sum(eqRand1,-1),1)}
eqBase2: {str_replace(eqZahl1,"",eqBase1)}
eqRand2: {if(is_empty(eqRand2),rand(1,strlen(eqBase2)),eqRand2)}
eqZahl2: {substr(eqBase2,sum(eqRand2,-1),1)}

Ich kann den Fehler einfach nicht finden bzw. verstehe nicht, woran es liegt.
Solange die beiden Zufallszahlen passen würden, wäre mir der Rest auch tatsächlich egal. Leider passen die aber nicht.

Hast Du vielleicht noch eine Idee?

Vorab schon einmal vielen Dank für die wie immer sehr kompetente Hilfe.

Beste Grüße
Attachments:
Last edit: 1 week 18 hours ago by Nessias.

Please Log in to join the conversation.

More
1 week 18 hours ago #212406 by Joffm
Woher soll ich eine Idee haben, wenn ich nicht sehe, was Du "getrieben" hast.

Also: lss Export.

Bis dann
Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

More
1 week 17 hours ago #212410 by Nessias
Sorry. Hier kommt die .lss
Attachments:

Please Log in to join the conversation.

More
1 week 17 hours ago - 1 week 16 hours ago #212415 by Joffm
Das ist aber nicht die Umfrage, auf der Dein screenshot beruht.
Oder?

Übrigens: Wie zeigst Du die Umfrage an?
"Frage für Frage" oder "Gruppe für Gruppe"?
 


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 week 16 hours ago by Joffm.

Please Log in to join the conversation.

More
1 week 16 hours ago - 1 week 16 hours ago #212417 by Joffm
So, ich habe Dir einmal ein Beispiel geschickt.

Die erste Geschichte funktioniert nur bei "Frage für Frage", ansonsten müsste man jede Gleichung in eine separate Gruppe setzen.
Dafür funktioniert G0a auch bei "Gruppe für Gruppe", und ist darüberhinaus auch noch kürzer. (Hier noch für drei Zahlen.

Der Rest unten dient nur der Demonstration, aber auch schon auf der zweiten -Matrizen - Lösung.
 

File Attachment:

File Name: limesurvey...8429.lss
File Size:47 KB


Joffm


Volunteers are not paid.
Not because they are worthless, but because they are priceless
Attachments:
Last edit: 1 week 16 hours ago by Joffm.
The following user(s) said Thank You: Nessias

Please Log in to join the conversation.

More
4 days 16 hours ago #212568 by Nessias
Vielen Dank Joffm, Du hast mir wieder einmal sehr geholfen!

Please Log in to join the conversation.

Start now!

Just create your account and start using Limesurvey today.

Register now