0 votes
in SoSci Survey (dt.) by s130443 (185 points)
closed by SoSci Survey

Liebes Soscisurvey-Support-Team,

aus der letzten Support-Antwort (https://support.soscisurvey.de/?qa=36229/randomisiertes-abwechselndes-prasentieren-verschiedenen#c36287) heraus habe ich die Aufgabe bekommen, einen Array zu erstellen mit 12 Elementen, deren Teillisten durch Zufallsgeneratoren gemischt werden.

Ich stehe gerade total auf dem Schlauch, wie ich zu diesem Ergebnise komme, und beschreibe nochmal, worum es hier geht.

Ich möchte, dass Teilnehmende 12 Seitenblöcke (12 "Runden", die aus 4 Seiten bestehen) in zufälliger Reihenfolge präsentiert bekommen. Diese 12 Blöcke können noch einmal unterteilt werden, da es in 6 Blöcken um eine fiktive Interaktion mit Person A und in den anderen 6 Blöcken um eine fiktive Interaktion mit Person B geht. Diese Information ist aber für die Randomisierung erstmal egal, da die 12 Blöcke in komplett randomisierter Reihenfolge präsentiert werden sollen.

(Nur zum Verständnis: Die Zuordnung der Blöcke zu Person A und B wird später relevant, weil jedes Mal, wenn einer teilnehmende Person insgesamt zwei (bzw. 4 bzw. 6) Blöcke mit derselben Person (z.B. Person A) präsentiert wurden, eine zusätzliche Seite präsentiert werden. Deswegen benötige ich meiner Einschätzung nach irgendwo die Info, zu welcher Person (A oder B) ein Block gehört).

Ich habe nun 3 Zufallsgeneratoren angelegt:
R101 für "Person" (1=A, 2=B)
R102 für "Runden A" (insgesamt 6 Blöcke/"Runden" mit Person A)
R103 für "Runden B" (insgesamt 6 Blöcke/"Runden" mit Person B)

Um einen Block zu ziehen, hätte ich jetzt den folgenden Code genutzt:

$person = value('R101');
if ($person == 1) {$runde = value('R102') // R102: Zufallsgenerator mit 6 "Interaktionsrunden" mit Person A
        }; else {
            $runde = value('R103'); // R103: Zufallsgenerator mit 6 "Interaktionsrunden" mit Person B
            }

Nun weiß ich aber nicht, wie ich daraus eine zufällige Liste aus 12 Elementen erstellen kann (siehe letzte Antwort unter https://support.soscisurvey.de/?qa=36229/randomisiertes-abwechselndes-prasentieren-verschiedenen#c36287)

Können Sie mir nochmal helfen, was genau hier gemeint ist bzw. wie ich das hinbekomme?

Beste Grüße

by SoSci Survey (297k points)
edited by SoSci Survey
Hier nochmal die Basis-Idee: Sie haben 2 Zufallsgeneratoren für die Reihenfolge innerhalb der beiden Personen A und B. Und einen dritten, der die Abfolge festlegt, ob er A oder erst B kommt.

Zunächst einmal müssen Sie den Zufallsgeneratoren (den beiden, die die 6 Seiten pro Person ziehen) sagen, dass Sie auch 6 Zettel=Seiten pro Runde ziehen sollen. Und dann brauchen Sie valueList() - mehr dazu in der Anleitung. Dann haben Sie zwei Listen für die Seitenabfolge innerhalb der Personen.

Außerdem sollten Sie sich mal die Funktion array_merge() ansehen, um die Seitenabfolgen für Person 1 und Person 2 in ein Array zusammen zu bekommen.

Nutzen Sie auch debug() um zu sehen, was in den PHP-Variablen eigentlich gespeichert ist. Posten Sie dann gerne ihren neuen Code und die neuen Fragen.
by s130443 (185 points)
Danke für die Hilfe, damit konnte ich sehr gut arbeiten!

Ich habe nun folgenden Code auf der Seite

    question('R102');
    question('R103');
    $abfolgeA = valueList('R102',  null, 'label'); // im Label habe ich die Seiten (jeweils 4 Stück) gespeichert
    $abfolgeB = valueList('R103',  null, 'label');
    $abfolge = array_merge($abfolgeA, $abfolgeB);

    debug($abfolge); // sieht gut aus!

    setPageOrder($abfolge, 'PG'); // danach soll es weiter mit Seite 'PG' gehen



Da ja eine "Runde" aus 4 Seiten besteht, habe ich diese als Label hinter den Zetteln in meinen beiden Zufallsgeneratoren definiert. Wenn ich nun mit setPageOrder arbeite, werden mir, wie gewünscht, die Seiten in randomisierten Seitenblöcken (also innerhalb der Blöcke keine Randomisierung, aber die Blöcke werden randomisiert) dargeboten.

Nun ist es so, dass ja noch Bonus-Seiten hinzukommen sollen: Nach jeder zweiten "Runde" mit derselben Person (Bspw. Person A) soll eine zusätzliche Seite präsentiert werden.
Können Sie mir sagen, wo ich hier anfangen soll?
Ist da setPageOrder dann überhaupt sinnvoll oder sollte ich mit einem Loop arbeiten?
Besten Dank bisher!!
by SoSci Survey (297k points)
Für die Rechenfolge Person A/B vs. B/A können Sie jetzt die Zeile mit array_merge() noch unterschiedliche gestalten. In Abhängigkeit von dritten Zufallsgenerator, z.B.

if (value('R101') == 1) {
    $abfolge = array_merge($abfolgeA, $abfolgeB);
} else {
    $abfolge = array_merge($abfolgeB, $abfolgeA);
}

> Nun ist es so, dass ja noch Bonus-Seiten hinzukommen sollen: Nach jeder zweiten "Runde" mit derselben Person (Bspw. Person A) soll eine zusätzliche Seite präsentiert werden.

Dafür müssen wir uns jetzt nochmal genauer mit den "Runden" bzw. "Blöcken" befassen. Sie schreiben dazu oben:

> 12 "Runden", die aus 4 Seiten bestehen

Verstehe ich es richtig, dass Sie 2 x 12 x 4 = knapp 100 Seiten vorlegen möchten? Oder sind die "Runden" schon in den Seiten enthalten?

Oder anders gefragt: Kann man

> "Nach jeder zweiten "Runde"

Jetzt schon direkt in Ihr Array einfügen oder wiederholt sich das noch mehrfach?
by s130443 (185 points)
Guten Morgen,
bevor ich näher auf die Bonus-Seiten eingehe (hier würde ich nochmal einen neuen Post machen, dann kann ich ja auch ein Bild anhängen, meine ich), ist mir noch etwas zur Abfolge aufgefallen:

Ich habe gestern vor Freude, dass die Randomisierung klappt, nicht bemerkt, dass wir hier ja blockwise randomisieren: Erst alle Person A-Runden, dann alle Person B-Runden; was ich noch einmal durch den dritten Zufallsgenerator variieren könnte, wie Sie oben vorschlagen.
Ich benötige aber, dass alle Runden komplett randomisiert dargeboten werden! Also dass bei der Randomisierung nicht zwischen Person A und B unterschieden wird.
Hierfür benötige ich dann wahrscheinlich einfach nur einen Zufallsgenerator mit allen 12 Runden drin?
by SoSci Survey (297k points)
> Ich benötige aber, dass alle Runden komplett randomisiert dargeboten werden!

Dann erklären Sie mir bitte nochmal, was es mit den Runden auf sich hat. Geht eine Runde über mehrere Seiten? Und worin unterscheiden sich die Runden? Welche Daten speichern Sie pro Runde?

Wenn Sie "nur" die Codes A1 bis B6 mischen wollten, wäre es noch viel einfacher, dann brauchen Sie nur einen Zufallsgenerator mit 12 Zetteln, aus dem Sie auch 12 Zettel ziehen. Aber ich habe es bisher so verstanden, dass es eben gerade *nicht* rein zufällig sein sollte.
by SoSci Survey (297k points)
Ich habe gerade erst die neue Frage mit Skizze gesehen ... machen wir einfach dort weiter :)
by s130443 (185 points)
Danke, ja! Ich dachte, eine Skizze wird es besser verdeutlichen.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...