0 votes
ago in Methoden-Fragen by s299132 (110 points)
edited ago by s299132

Hallo,

ich würde gern es einstellen, dass meine Umfrage schaut, wieviele Leute mit einem bestimmten Merkmal das Ende der Umfrage erreicht haben?

Ich habe auch auf Seite 24 ein redirect eingebettet, daher, würde mein einfaches "beendet" so aussehen, ich denke:
$finished = statistic('count', 'LASTPAGE', 24);

... würde es so aussehen, wenn ich auch Anzahl von nur Frauen (SD03_02==2) zusammenzählen würde?
$finished_female = statistic('count', array('LASTPAGE',SD03_02), array(24,2));

Komplette Quotierungscode wäre dann wie folgt, richtig?

$quotaGender = [ 1 => 300, // 300 Männer (Code 1) 2 => 300 // 300 Frauen (Code 2) ];

$gender = value('SD02');
$maxPerGender = $quotaGender[$gender];

$finished_female = statistic('count', array('LASTPAGE','SD03_02'), array(24,2));

// Quotenstopp
if ($finished_female >= $maxPerGender) {
redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}

Vielen Dank nochmal für die Rückmeldung!

1 Answer

0 votes
ago by SoSci Survey (324k points)

Ich würde eher vorschlagen, das Quotenmerkmal am Ende des Fragebogen in eine interne Variable zu kopieren, und dann für di Quotierung nur dies zu zählen: Kopieren der Quotenmerkmale.

ago by s299132 (110 points)
Vielen Dank für die Rückmeldung.
Wenn ich es richtig verstehe - man zählt die Merkmale nur am Ende. Aber dann wie füttere ich diese Information am Anfang der Umfrage wieder ein?
Aber diese Information braucht man am Anfang?

Wäre es so was die Lösung?

$quotaGender = [ 1 => 300, // 300 Männer (Code 1)
2 => 300 // 300 Frauen (Code 2) ];

$gender = value('SD02');
$maxPerGender = $quotaGender[$gender];

$GenderCurrentNr= $GenderFinished+$gender;

// Quotenstopp
if ($$GenderCurrentNr>= $maxPerGender) {
redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}

//Letzte Seite
put(''SD02', $GenderFinished);
ago by SoSci Survey (324k points)
> man zählt die Merkmale nur am Ende.

Nein, nicht ganz. Gezählt wird zu Beginn (also nach Abfrage der Merkmale). Aber die Variable, die gezählt wird, ist eine Kopie der Angaben in einer internen Variable - und diese wird erst am Ende kopiert, sodass die Variable für Abbrecher leer bleibt.

Im statistic()-Befehl zählen Sie also z.B. wie häufig die Antwort aus SD02 bereits in der internen Variable IV01_01 vorkommt, wobei IV01_01 entweder den Wert aus SD02 enthält oder eben nichts, bei Abbrechern.
ago by s299132 (110 points)
Vielen Dank nochmal für die Antwort erneut.
OK, ich denke, es ist nun klarer.  Das heißt, ich faktisch "sage" mit dem statistic() Befehl, dass "zähle aus der internen Variable alle Leute die die gleiche Merkmale habe, also meine Aktuelle Person, und wenn diese Auspräfung die Quotengrenze erreicht hat, bitte ein Quotenstop einlegen."
Es würde deine bei einem Merkmal so aussehen:
$quotaGender = [ 1 => 300, // 300 Männer (Code 1) 2 => 300 // 300 Frauen (Code 2) ];

$gender = value('SD02');
$maxPerGender = $quotaGender[$gender];

$casesGender = statistic('count', $GenderFinished, $gender);

// Quotenstopp
if ($casesGender >= $maxPerGender) {
redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}

//Letzte Seite
put(''SD02', $GenderFinished);
ago by SoSci Survey (324k points)
Als zweiten Parameter bei statistic() würden Sie die Kennung der internen Variable einsetzen. Wenn Sie diese in  $GenderFinished abgelegt haben, dann würde es so funktionieren, ja. Aber diese PHP-Variable müssten Sie dann auf beiden Seiten setzen.
ago by s299132 (110 points)
ja, genau wie ich oben im Code steht.

Aber bei der alleersten Umfrage existiert noch $GenderFinished Variable, weil es wird am Ende der Umfrage erzeugt. Müsste dann jeden Quotierungsdurchlauf in einem "if" Befehl eingebettet sein, wie folgt dann, richtig?


$gender = value('SD02');
$maxPerGender = $quotaGender[$gender];
if (array_key_exists($casesGender) {
$casesGender = statistic('count', $GenderFinished, $gender);
// Quotenstopp
if ($casesGender >= $maxPerGender) {
redirect('https://www.panelanbieter.de/?xyz=quotaABCDEF&uid=%reference%');
}
}
//Letzte Seite
put(''SD02', $GenderFinished);
ago by SoSci Survey (324k points)
Aus meiner Sicht müssten Sie $GenderFinished einfach durch "IV01_01" ersetzen bzw. wie Ihre interne Variablen eben heißt.

Und auf der letzten Seite müssten Sie den Code wie folgt ändern:

$gender = value('SD02');
put(''IV01_01', $gender);

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

...