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

Und zum anderen scheitert es:

Betreff: Spaltenfunktionen 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 mit 15.1.0.
Jetzt bin ich total verwirrt!
Screenshots im nächsten Beitrag ...
Betreff: Spaltenfunktionen und ZeilenzuständeInteressant. Ein Pre-Release-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: Spaltenfunktionen und ZeilenzuständeDavid,
Sehr verwirrend. Ich denke, das ist eine Frage für unsere Freundin Wendy.Betreff: Spaltenfunktionen und ZeilenzuständeIch kann eine Lösung codieren - meine Frage war speziell, ob die Version 15 es erlaubt, dies ausschließlich über die Spaltenfunktionen zu tun - das war der Eindruck, den ich aus den Versionshinweisen gewonnen habe.
Betreff: Spaltenfunktionen und ZeilenzuständeVielleicht bedeutet Ehrung in diesem Fall, dass das Ausgeschlossene nur eine zusätzliche byVar in Spaltenstatistikformeln ist?
Wenn Sie den maximalen Wert der 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: Spaltenfunktionen und ZeilenzuständeIch habe mit v15.2 getestet und das Problem ist das gleiche.Beachten Sie, dass der Anwendungsfall die Funktion innerhalb eines Skripts und nicht innerhalb einer Spaltenformel verwendet (nicht sicher, warum ich eine Spaltenstatistik in einer Zeile haben möchte).
Betreff: Spaltenfunktionen und ZeilenzuständeIch werde dieses sehr einfache Beispiel hier hinzufügen, falls jemand anderes 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: Spaltenfunktionen und ZeilenzuständeDanke für die Information.Mit 15.1 geht das nicht - ich versuche mal einen Vergleich mit 15.2.
Betreff: Spaltenfunktionen und ZeilenzuständeIch habe schnell getestet und schien, dass die Verwendung von nur Excluded() zu funktionieren schien (ich verwende 15.2.1).