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

0 votes

Hi,

mittels folgender Schleife zähle ich ich die Anzahl einer Variable. In Itemliste4 sind fünf Namen, die auch in den internen Variablen 02 bis 06 abgelegt sind. In counts ist dann ein array mit dem Namen und der Anzahl der bisherigen Aufrufe. Ziel ist die Quotierung, wenn die Marke x-mal genannt wurde, wird der Teilnehmer rausgeleitet, das erfolgt über eine separate Schleife.
Beim Testen hat das alles gut funktioniert - nun findet aber plötzlich keine Zählung mehr statt, d.h. der count im array bleibt bei einer Zahl und erhöht sich nicht mehr. Kann es dafür einen Grund in den Einstellungen o.ä. geben? Auch mit ausgiebigem Testen habe ich leider keinen Grund finden können.

$counts = array();
$countVars = array('BP07_02', 'BP07_03', 'BP07_04', 'BP07_05', 'BP07_06');
foreach ($Itemliste4 as $itemNum) 
{  $counts[$itemNum] = 0;
  foreach ($countVars as $varID) {
      $counts[$itemNum]+= statistic('count', $varID, $itemNum);}};

Herzlichen Dank vorab!

in SoSci Survey (dt.) by s117257 (175 points)
edited by SoSci Survey

1 Answer

0 votes

Bitte prüfen Sie zwei Dinge:

  1. Weicht das Ergebnis von statistic() tatsächlich von dem Ergebnis ab, wenn Sie den Datensatz herunterladen und eine Häufigkeitsauszählung machen?
  2. Beachten Sie in diesem Kontext bitte auch die unter Erhobene Daten eingestellten Auswahlkriterien für gültige Fälle.
by SoSci Survey (238k points)
Ok, es liegt daran, dass der Fragebogen bis zur letzten Seite ausgefüllt werden muss. Jetzt funktioniert es. Noch eine letzte Folgefrage: Mittels nachfolgender Schleife soll dann der Fragebogen beendet werden, wenn die Anzahl der Abfragen das Limit überschreitet. Die Zählung für die abgefragte Marke in $count beträgt 5, das in $limit festgesetzte Limit 2, so dass der Teilnehmer eigentlich rausgeleitet werden müsste. Das geschieht allerdings nicht, ich sehe aber auch keinen Fehler. Nochmal Danke vorab!

$larger = false;
foreach ($counts as $key => $value) {if (!array_key_exists($key, $limits))
{continue;}

if ($value > $limits[$key])
{$larger = false;}};

if ($larger = true) {}
else {redirect('https://samplicio.us/s/ClientCallBack.aspx?RIS=30&RID=%panelID%');};
Sie setzen die Variable $larger auf false IMMER WENN mindestens eine Gruppe das Limit überschreitet. Eigentlich wäre es deutlich sinnvoller, wenn Sie statistic() nur für die Gruppe (Marke) verwenden, welche im aktuellen Interview bearbeitet werden soll - und dann auch ohne erneute Schleife nur diese Gruppengröße testen.
...