0 votes
in SoSci Survey (dt.) by s269409 (160 points)

Ich bin gerade dabei, die Quotierung für 3 Variablen (Alter, Geschlecht, Kaufhäufigkeit) zu programmieren. Das scheint soweit zu funktionieren, allerdings werden mit der Funktion statistic keine Fälle gezählt. Ich bin den Code mehrfach durchgegangen und mir fällt der Fehler nicht auf. Die interne Variable ist definiert und die Kennung stimmt auch. Der PHP-Code ist auf der Seite nach der letzten relevanten Frage platziert.

// Definition der Quoten

$quotaAge=[
2=>520,//400 - maximal 520 in Altersgruppe 2 (18-44-Jaehrige)
3=>400//280 - maximal 400 in Altersgruppe 3 (45-70-Jaehrige)
];

$quotaGender=[
1=>520,//400 - maximal 520 Frauen (Code 1)
2=>400//280 - maximal 400 Männer (Code 2)
];

$quotaBio=[
1=>112,//112 in nie/selten
2=>344,//344 in gelegentlich/regelmäßig
3=>344//344 in häufig/ausschließlich
];

// Merkmale auslesen und umkodieren

// Geschlecht wird direkt ausgelesen
$gender=value('A201');

// Das Alter wird umkodiert.
$age=value('A202_01');
if($age<18){
$ageGroup=1;
}elseif($age<=44){
$ageGroup=2;
}elseif($age<=70){
$ageGroup=3;
}else{
$ageGroup=4;
}

// Die Biokaufhäufigkeit wird umkodiert.
$bio=value('A203');
if($bio<=2){
$bioGroup=1;
}elseif($bio<=4){
$bioGroup=2;
}else{
$bioGroup=3;
}

// Zählung der vorliegenden Fälle

// Abruf der vorliegenden Fälle für diese Merkmalsausprägung
$casesAge=statistic('count','A105_01',$ageGroup);
$casesGender=statistic('count','A105_02',$gender);
$casesBio=statistic('count','A105_03',$bioGroup);

// Screenout
if(!array_key_exists($ageGroup, $quotaAge)){
redirect('https://dkr1.ssisurveys.com/projects/end?rst=2&psid=%psid%');
}

// Auslesen der Quoten für die angegeben Merkmale
$maxPerAge=$quotaAge[$ageGroup];
$maxPerGender=$quotaGender[$gender];
$maxPerBio=$quotaBio[$bioGroup];

// Zusätzliche Informationen anzeigen
debug($casesAge);
debug($maxPerAge);
debug($casesGender);
debug($maxPerGender);
debug($casesBio);
debug($maxPerBio);

// Zusätzliche Informationen anzeigen
debug($ageGroup);
debug($quotaAge);
debug($maxPerAge);
debug($gender);
debug($quotaGender);
debug($maxPerGender);
debug($bioGroup);
debug($quotaBio);
debug($maxPerBio);

// Quotenstopp
if(($casesAge>=$maxPerAge)||
($casesGender>=$maxPerGender)||
($casesBio>=$maxPerBio)){
//redirect('https://dkr1.ssisurveys.com/projects/end?rst=3&psid=%psid%');
html('<p>Redirect ausgelöst<p>');
pageStop();

}

Das ist sind die Informationen aus der Debug-Funktion:

Vielleicht finden Sie den Fehler? Ich bin für jede Hilfe dankbar.

1 Answer

0 votes
by SoSci Survey (306k points)
selected by s269409
 
Best answer

Standardmäßig zählt statistic() nur abgeschlossene Fälle und - wenn der Fragebogen schon im Feld ist - auch nur Fälle mit MODE=interview, damit Testdaten die Quote nicht verfälschen. Meine Vermutung wäre, dass es daran liegt?

by s269409 (160 points)
Danke, das war das Problem!

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

...