Ich berechne einen generellen Faktor (Gold-MSI) (G_MSI_GF) auf der letzten Seite des Fragebogens. Dabei werden die bisherigen Antworten gewichtet, zusammengerechnet und in Form eines Ergebnisses (von 0 bis 1) mittels "put()" in einer internen Variablen gespeichert.
Über statistic('filter' etc habe kann ich mir den bestehenden Datensatz holen. Das funktioniert. Dies tue ich mehrmals auf derselben Seite, um eine Auswertung für den Teilnehmer anzuzeigen. Dabei komme ich auf folgendes Problem, nach einem Filter:
statistic('count', 'G_MSI_GF', false, true) zeigt mir, dass es drei Werte gibt
statistic('mean', 'G_MSI_GF', false, true) ergibt 0.00000 obgleich die Werte nicht "0" sind (ich kann die erhobenen Daten ja angucken).
Selbiges gilt für min, max, mode - alle 0.
Er weiß also "3 Werte gibt es mit diesen Kriterien" aber er denkt sie sind alle null.
Eine alternative wäre das verzichten auf den erneuten Filter, nach der Vermutung, dass mehrere Filter angaben auf einer Seite sich eventuell in die Quere kommen könnten. Aber diese Auswertung mit "groupmean" funktioniert ebenso nicht:
statistic('groupmean', G_MSI_GF, 'filtervariable=1', true) zeigt mir ebenfalls 0 an.
Meine Vermutung: interne Variablen funktionieren nicht mit statistc()
Kann das sein? Ist das gewollt, da diese Variablen nicht nur Zahlen sein können?
Gibt es ein workaround?
Update: Ich habe das ganze mit Internen Variablen berechnet, die text enthalten (boolean, True / false) und hier wird "n/a" ausgegeben. Es wird also schon unterschieden ob es eine Zahl ist oder nicht, die enthaltenen Zahlen werden nur nicht beachtet...
Update2: Vielleicht liegt es gar nicht an den internen Variablen, sondern daran, dass es text ist. Ich habe die Variable zu "offene Texteingabe" geändert und auch hier ergab sich immer ein Wert von 0.00000 bei der statistischen Auswertung. Die Werte sind allerdings immernoch sichtbar in den Erhobenen Daten. Warum gibt es nicht einfach eine "Interne Variable: Float"?
Update3: Folgenden Workaround habe ich verwendet:
Ich habe jetzt jeweils zusätzlich zur internen Variable eine Slider-Frage erstellt, die von 1-10001 läuft. In diese wird die Variable zusätzlich mit put(..., true) gespeist. Beim auslesen wird dann wieder entsprechend geteilt, sodass eine gerundete Kommazahl herauskommt. Nicht super ideal, aber funktioniert.