Hallo,
Ich habe gerade zwei schwerwiegende Fehler in Tabellen/Zusammenfassungen entdeckt.
Mit einem davon kann JMP sogar auf jedem PC zum Absturz gebracht werden (!!!)
Fehler 1) Bitte lesen Sie diesen Code und sagen Sie voraus, was Jmp tun wird:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary(
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "X" ) ) ),
Group( :sex ),
Mean( :height ),
Link to original data table(0),
output table name( "average o students with sex = \!"X\!"" )
);
In BigClass gibt es keine Schüler mit Geschlecht="X". Ich habe also erwartet, dass die Liste leer ist:
Filter: Geschlecht="X" / kein "X" in der Tabelle -> leere Übersichtstabelle
Leider ist die Logik in Jmp überraschend anders:
Wenn der Datenfilter keine Übereinstimmung findet, wird der Datenfilter zurückgesetzt und zeigt ALLE Daten an.
Für Dashboards, Ausreißer-Screening (:alien:) mit Jmp Dashboards – wie? TS-00046650, es ist „nur“ ärgerlich, dass die Einschränkung nicht angewendet wird – bei der automatischen statistischen Analyse über Tabellen/Zusammenfassung ist das Problem schwerwiegender: am Ende gibt es das falsche Ergebnis – kein Datenfilter auf der linken Seite eines Dashboards, wo der Benutzer das Problem erkennen und beheben kann.
Seit Jmp 17 gibt es diese coole neue Funktion: Remove Excluded Rows
leider gibt es:
Fehler Nr. 2:
Wenn Sie Jmp 17 oder Jmp 18 EA haben, versuchen Sie bitte, diesen Code zweimal auszuführen – speichern Sie Ihre Daten, Jmp stürzt ab!
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Summary(
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "F" ) ) ),
Group( :sex ),
Mean( :height ),
Remove Excluded Groups,
Link to original data table(0)
);
// today no females
dt << Select where( :height < 67 ) << Exclude;
Nach dem ersten Ausführen des Codes zeigt die Übersichtstabelle aufgrund der Einschränkung des Datenfilters die durchschnittliche Größe der weiblichen Einträge an. Die Zeile am Ende des Codes schließt dann alle Zeilen mit einer Größe < 67 aus, darunter alle weiblichen Einträge.
Führen Sie den Code jetzt erneut aus:
Die Zeilen mit sex="F" sind immer noch da, sie sind nur ausgeschlossen . Im Vergleich zu Fehler Nr. 1 wird der Datenfilter hier also nicht zurückgesetzt.
Dadurch wird die Analyse auf Zeilen mit Geschlecht = „F“ beschränkt. Diese Zeilen werden vom Datenfilter der Datentabelle ausgeschlossen.
Insgesamt gibt es keine passende, nicht ausgeschlossene Zeile. Die Konsequenz: Remove Excluded Rows hat viel zu tun – und wird wütend.
So wütend, dass Jmp abstürzt.
Es ist klar, dass der Benutzer ohne übereinstimmende Zeilen wenig Nutzen aus dem Ergebnis ziehen wird. Aber in einem langen Skript könnte es so etwas geben wie:
Bitte ermitteln Sie die durchschnittliche Körpergröße der Schülerinnen in der Klasse, die auch einigen zusätzlichen Filtereinstellungen entsprechen, die über die Haupttabelle angewendet wurden.
Unter der Zeile:
Nehmen wir an, ich möchte die Schülerinnen einer Klasse zählen und ihre durchschnittliche Größe berechnen. Dazu verwende ich Jmp/Tables/Summary mit einem Datenfilter:
- Wenn es in der Klasse keine weiblichen Schüler gibt, zählt Jmp die männlichen Schüler und ermittelt ihr Durchschnittsalter (!!!)
- Wenn es in der Klasse >=1 Studentinnen gibt, die entsprechenden Zeilen aber ausgeschlossen wurden, stürzt Jmp ab (!!!)
[wenn „Ausgeschlossene Zeilen entfernen “ aktiviert ist]
@hogi schrieb:
Für Dashboards, Outlier (:alien:)-Screening mit Jmp Dashboards – wie? TS-00046650, es ist „nur“ ärgerlich, dass die Einschränkung nicht angewendet wird – bei der automatischen statistischen Analyse über Tabellen/Zusammenfassung ist das Problem schwerwiegender: Am Ende gibt es das falsche Ergebnis – kein Datenfilter auf der linken Seite eines Dashboards, wo Der Benutzer kann das Problem erkennen und beheben.
Gleiches Thema -> gleiche Lösung:
Lokaler Datenfilter: Option: Auf aktuelle Daten beschränken oder nicht beschränken
Hallo Mandy, vielen Dank, dass du dich so schnell darum gekümmert hast.
Ich habe heute den TS-Track erhalten und werde ihn untersuchen und alles, was gefunden wird, zurücksenden.
Ja, ich habe gerade die Ticketnummer erhalten: TS-00124252
@hogi
Sehr interessant.
Ich habe Ihre Erkenntnisse in JMP 17 und 18 repliziert.
Ich gehe davon aus, dass Sie dieses Problem an support@jmp.com gesendet haben