Spaltenfunktionen und ZeilenzuständeLaut den Versionshinweisen für Version 15 von JMP:
Die Col-Funktionen berücksichtigen ausgeschlossene Zeilen über die Funktion Excluded(Row State()).
Col Maximum( :height, :sex, Excluded( Row State() ) );
Diese Syntax scheint jedoch nicht zu funktionieren.Kann jemand die korrekte Syntax vorschlagen?
Datenmischung und -bereinigungVersuchsplanungBetreff: Col-Funktionen und ZeilenzuständeIch denke, dass es das gleiche Konzept ist wie das, das hinter dem Binning steht. Sie ordnen für jede Beobachtung einen Wert einem anderen zu, in diesem Fall einem Gruppenwert. Es könnte ein Mülleimer sein. Es könnte ein Maß für die zentrale Tendenz sein.
Betreff: Col-Funktionen und ZeilenzuständeOK danke.Ich komme mit der Idee, für jede Zeile der Tabelle eine Spaltenstatistik zu erstellen, nicht wirklich klar, aber ich vermute, dass es Anwendungsfälle geben muss.Ich bleibe bei der Verwendung einer benutzerdefinierten Funktion zur Berechnung der Spaltenstatistiken unter Berücksichtigung von Zeilenausschlüssen.
Betreff: Col-Funktionen und ZeilenzuständeEntsprechend der Dokumentation , wenn eine By-Variable angegeben ist, sollte die Funktion in einer Spaltenformel oder für For Each Row() verwendet werden:
(Optional) Eine zu berechnende By-Variable Statistik s über Gruppen von Zeilen hinweg. Verwenden Sie die By-Variable in a Kol umn Formel oder in a Für jede Reihe() Funktion.
Wenn ich mir einige der Beispiele von früher in diesem Beitrag ansehe, stimme ich zu, dass ausgeschlossene Werte anscheinend als ihre eigene By-Ebene behandelt werden.
Betreff: Col-Funktionen und ZeilenzuständeEs sieht so aus, als würde es mit einer Spaltenformel verwendet, in der die Row()-Funktion bei der Auswertung definiert wird.
Betreff: Col-Funktionen und ZeilenzuständeAuf einem Computer funktioniert es:

Und andererseits scheitert es:

Betreff: Col-Funktionen und ZeilenzuständeArbeiten mit Big Class (natürlich):
colmaximum(:height,excluded(rowstate()))
Das funktioniert.Aber auf einem Computer, aber nicht auf einem anderen.Beide laufen unter 15.1.0.
Jetzt bin ich völlig verwirrt!
Screenshots im nächsten Beitrag ...
Betreff: Col-Funktionen und ZeilenzuständeInteressant. Ein Vorab-Build von JMP 16 scheint es für r=1 und r=2 richtig zu machen, aber nicht danach:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
mw = J(NRow(dt), 2, .);
for(r=1, r<=NRow(dt), r++,
Row() = r;
RowState(Row()) = ExcludedState(1);
mw[r,1] = ColMean(:weight, Excluded(RowState(Row())));
mw[r,2] = ColMean(:weight, Excluded());
RowState(Row()) = ExcludedState(0);
);
AsTable(mw);
dt << Distribution(
Continuous Distribution(
Column( :weight ),
Quantiles( 0 ),
Histogram( 0 ),
Outlier Box Plot( 0 )
),
Local Data Filter(
Add Filter(
columns( Transform Column( "Row", Nominal, Formula( Row() ) ) ),
Where( Transform Column( "Row", Nominal, Formula( Row() ) ) == 1 ),
Display(
Transform Column( "Row", Nominal, Formula( Row() ) ),
N Items( 15 ),
Find( Set Text( "" ) )
)
)
)
);Betreff: Col-Funktionen und ZeilenzuständeDave,
Sehr verwirrend. Ich denke, das ist eine Frage an unsere Freundin Wendy.Betreff: Col-Funktionen und ZeilenzuständeIch kann eine Lösung programmieren – meine Frage bezog sich speziell darauf, ob dies in Version 15 ausschließlich über die Spaltenfunktionen möglich ist – das war der Eindruck, den ich aus den Versionshinweisen gewonnen habe.
Betreff: Col-Funktionen und ZeilenzuständeVielleicht bedeutet „Ehren“ in diesem Fall, dass das Ausgeschlossene nur eine zusätzliche byVar in Spaltenstatistikformeln ist?
Wenn Sie den Maximalwert einer Spalte ohne ausgeschlossene Werte wünschen, könnten Sie Summarize anstelle von Col Maximum verwenden? Es scheint ausgeschlossene Zeilen zu ignorieren.
Names Default To Here(1);
dt =New Table("ExcludeColMax",
Add Rows(6),
Compress File When Saved(1),
New Column("A",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 10, 100, 2, 20, 200]),
Set Display Width(46)
),
New Column("B",
Character,
"Nominal",
Set Values({"A", "A", "A", "B", "B", "B"})
),
New Column("C",
Numeric,
"Continuous",
Format("Best", 12),
Formula(Col Maximum(:A, :B, Excluded())),
Set Display Width(65)
),
Set Row States([0, 0, 6, 6, 0, 6])
);
Write("Looping col max:");
For Each Row(
Show(Col Maximum(:A, :B, Excluded()))
);
Write("\!N\!NOnly col max:");
Show(Col Maximum(:A, :B, Excluded()));
Write("\!N\!NSummarize:");
Summarize(dt, exg = By(:B), exm = Max(:A));
Show(Eval List({exg, exm}));
Show(Max(exm));Betreff: Col-Funktionen und ZeilenzuständeIch habe es mit Version 15.2 getestet und das Problem ist das gleiche.Beachten Sie, dass der Anwendungsfall darin besteht, die Funktion innerhalb eines Skripts und nicht innerhalb einer Spaltenformel zu verwenden (ich bin mir nicht sicher, warum ich eine Spaltenstatistik in einer Zeile haben möchte).
Betreff: Col-Funktionen und ZeilenzuständeIch werde dieses sehr einfache Beispiel hier hinzufügen, falls noch jemand vorbeikommt:

Names Default To Here(1);
New Table("ExcludeColMax",
Add Rows(6),
Compress File When Saved(1),
New Column("A",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 10, 100, 2, 20, 200]),
Set Display Width(46)
),
New Column("B",
Character,
"Nominal",
Set Values({"A", "A", "A", "B", "B", "B"})
),
New Column("C",
Numeric,
"Continuous",
Format("Best", 12),
Formula(Col Maximum(:A, :B, Excluded())),
Set Display Width(65)
),
Set Row States([0, 0, 6, 6, 6, 0])
);Betreff: Col-Funktionen und ZeilenzuständeDanke für die Information.Das funktioniert mit 15.1 nicht – ich werde versuchen, einen Vergleich mit 15.2 durchzuführen.
Betreff: Col-Funktionen und ZeilenzuständeIch habe es schnell getestet und festgestellt, dass nur die Verwendung von Excluded() zu funktionieren schien (ich verwende 15.2.1).
Betreff: Col-Funktionen und ZeilenzuständeErgänzend zu dieser Diskussion würde ich das Verhalten der Col-Funktionen als seltsam und anders als das, was in JMP typisch ist, und daher als unerwartet und verwirrend empfinden.
Col-Funktionen ignorieren den Ausschluss von Zeilen und die Filterung, sowohl lokal als auch global.
Dies bedeutet, dass die lokale Filterung innerhalb einer Analyseausgabe bei Col-Funktionen ignoriert wird und das Erhalten von Ergebnissen mit Filterung oder nach Untergruppen nicht möglich ist oder die erhaltenen Ergebnisse tatsächlich falsch sind.
Die Möglichkeit, einige Zeilen mithilfe einer Formel auszuschließen, ist immer noch sehr eingeschränkt.
Ich sehe darin ein Problem mit JMP, da dies möglicherweise Benutzer verwirren oder irreführen könnte. Ich hoffe, dass das JMP-Team dieses Problem angeht, damit die Col-Funktionalität mit der anderer Funktionen übereinstimmt.
Betreff: Col-Funktionen und Zeilenzustände@Oren_Barilan ,
Um Ihre Besorgnis über die Col-Funktionen, die nicht der ausgeschlossenen Funktionalität der JMP-Plattformen entsprechen, auf den Punkt zu bringen, müsste man viel mehr Funktionen als nur die Col-Funktionen einbeziehen.Eine einfache SQRT()-Funktion oder eine SUM()-Funktion sollte ebenfalls in Ihrem Argument enthalten sein, denn wenn sie für Werte in einer ausgeschlossenen Zeile verarbeitet werden, sollten auch sie einen Nullwert zurückgeben.Und wenn dies der Fall wäre, wie gehen Sie mit der Situation um, in der Sie nicht möchten, dass die Zeilen ignoriert werden?
Aus meiner Sicht verfolgt JMP also einen eher funktionalen Ansatz, der es dem Programmierer ermöglicht, alles so zu nutzen, wie er es benötigt.
Col Mean( :weight );
berechnet den Mittelwert über alle Zeilen in der Datentabelle
Col Mean( If( Excluded( Row State( Row() ) ), ., :weight ) )
berechnet den Mittelwert nur für die nicht ausgeschlossenen Zeilen
Betreff: Col-Funktionen und ZeilenzuständeIch stimme Jim zu.
Es gibt auch die dritte Option, bei der Sie „Ausgeschlossen“ als eigene „Gruppe“ behandeln (nicht sicher, wie es in der Realität gehandhabt wird).
Col Mean(:weight, Excluded())

Mein einziges „Problem“ mit Col-Funktionen besteht darin, dass sie aufgrund der Art und Weise, wie sie ausgeschlossene Zeilen verarbeiten, gefährlich sein können UND Sie sie so einfach über das Rechtsklick-Menü erstellen können. Vielleicht könnte dieses Risiko verringert werden, wenn JMP Excluded() automatisch in diese Formeln einbeziehen würde (oder es zu einer Präferenz machen würde)?