Col Sum verweist auf die falsche DatentabelleIch habe zwei Datentabellen in meinem Skript geöffnet, dt1 und dt2, und sie wurden in dieser Reihenfolge geöffnet. dt1 verfügt über eine Spalte mit einer Statusvariablen, wobei eine andere Ausnahme als "1" eine Art Ausreißer darstellt. Ich möchte die Anzahl der Ausreißer in dt1 zählen. Das ist was ich habe ...
n_out = Col Sum(If( dt1:STATUS == "1", 0, 1));
Dies scheint jedoch nicht zu funktionieren. Es scheint, dass der Code versucht, auf dt2 zu verweisen, als er kürzlich geöffnet wurde. Wenn ich auf dt1 klicke, um das Fenster nach vorne zu bringen, und dann den Code erneut ausführen, funktioniert es. Warum funktioniert meine Referenz von dt1: STATUS nicht?
Danke für Ihre Hilfe.
Re: Col Sum verweist auf die falsche DatentabelleDieser Code erzeugt auch den korrekten Wert von 9:
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
dt1 << New Column( "Outlier", Formula( :height > 65 ) );
n outliers = Col Sum( dt1:Outlier );
Hier habe ich eine andere Datenspalte mit einer Formel verwendet, die den Ausdruck verwendet, um einen Ausreißer zu testen. Dieses Ergebnis sagt mir das Col Sum () ist möglicherweise nicht für die Verwendung mit einem Ausdruck, sondern speziell mit einer Datenspalte gedacht (Hinweis, Hinweis: COL SUM ().) Ich weiß nicht, woher der Wert 4 stammt, wenn Sie den Ausdruck für den Ausreißertest anstelle einer Datenspaltenreferenz verwenden.
Re: Col Sum verweist auf die falsche DatentabelleWarum nicht?
Re: Col Sum verweist auf die falsche DatentabelleOK... OK.... Das folgende erzeugte die Zählung auf 9
Namensvorgabe für Hier (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open ("$ SAMPLE_DATA / Fitness.jmp");
n ht über 60 = Summe ((dt1: height << Get As Matrix)> 65);
Bedeutet das, dass das Konvertieren in Matrix eine Lösung ist?
Re: Col Sum verweist auf die falsche DatentabelleGleicher Fehler... Ist mein Code:
Namensvorgabe für Hier (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open ("$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col-Summe (dt1: Höhe> 65);
show (num_tall);
Produziere num_tall = 9 auf deinem System?
Ich verwende JMP 13, wenn das etwas damit zu tun hat.
Re: Col Sum verweist auf die falsche DatentabelleMeine dumme Frage für den Tag: Was passiert, wenn Sie JMP beenden und neu starten?
Re: Col Sum verweist auf die falsche DatentabelleGroßartige Idee... Also habe ich den folgenden Code ausgeführt:
Namensvorgabe für Hier (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open ("$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col-Summe (dt1: Höhe> 65);
show (num_tall);
Dies ist die Ausgabe:
Namensvorgabe für Hier (1);
dt1 = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt2 = Open ("$ SAMPLE_DATA / Fitness.jmp");
num_tall = Col-Summe (dt1: Höhe> 65);
show (num_tall);
/ *:
num_tall = 4;
Wenn ich dann auf die Tabelle Big Class klicke (bringt sie in den Vordergrund), bekomme ich:
num_tall = Col-Summe (dt1: Höhe> 65);
show (num_tall);
/ *:
num_tall = 9;
Welches ist die richtige Antwort.
Stimmt etwas nicht mit meinen Einstellungen oder ist dies nur so, wie JSL entworfen wurde?
Re: Col Sum verweist auf die falsche DatentabelleSie können stattdessen auch diesen Code ausprobieren:
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
n ht over 60 = Sum( (Column( dt1, 4 ) << Get As Matrix) > 60 );
Re: Col Sum verweist auf die falsche DatentabelleWarum treten Sie nicht vom ursprünglichen Problem zurück und probieren etwas einfacher aus. Verweisen Sie beispielsweise mit unterschiedlichen Werten in jeder Datentabelle auf nur eine Position, um zu sehen, welcher Wert zurückgegeben wird. Zum Beispiel,
Names Default to Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = Open( "$SAMPLE_DATA/Fitness.jmp" );
value = Column( dt1, 4 )[2]; // second row of :height in Big Class?
Show( value );
Es scheint zu funktionieren.
Re: Col Sum verweist auf die falsche DatentabelleDanke für die Antwort.
Ich bekomme das gleiche Problem.
Ich weiß, dass die Antwort für ein bestimmtes Beispiel n_out = 3 ist. Auf meinem Bildschirm sehe ich dt1 im Hintergrund, als es zuerst geöffnet wurde, und dann dt2 darüber. Wenn ich diese Codezeile laufen lasse, bekomme ich n_out = 0. Wenn ich aber auf die Tabelle dt1 klicke (sie in den Vordergrund meines Bildschirms bringe) und dann den Code erneut ausführen, bekomme ich n_out = 3.
Deshalb denke ich, dass das Problem darin liegt, auf die falsche Tabelle zu verweisen.
Re: Col Sum verweist auf die falsche DatentabelleIch habe auch folgendes ausprobiert:
n_out = Col-Summe (NOT (dt1: STATUS == "1"))
und es funktioniert immer noch nicht.
Ich weiß, dass die Antwort für ein bestimmtes Beispiel 3 ist. Auf meinem Bildschirm sehe ich dt1 im Hintergrund, als es zuerst geöffnet wurde, und dann dt2 darüber. Wenn ich diese Codezeile laufen lasse, bekomme ich n_out = 0. Wenn ich aber auf die Tabelle dt1 klicke (sie in den Vordergrund meines Bildschirms bringe) und dann den Code erneut ausführen, bekomme ich n_out = 3.
Deshalb denke ich, dass das Problem darin liegt, auf die falsche Tabelle zu verweisen.
Re: Col Sum verweist auf die falsche DatentabelleProbieren Sie dieses Formular aus und prüfen Sie, ob es funktioniert
n_out = Col Sum( dt1:STATUS != "1");
Re: Col Sum verweist auf die falsche DatentabelleLaut Ihrer Beschreibung sollte das definitiv nicht passieren. Ich sehe keine Probleme in Ihrem Code. Vielleicht ist ein guter Zeitpunkt, um den technischen Support von JMP anzurufen.