Funzioni Col e stati di rigaSecondo le note di rilascio per la versione 15 di JMP:
Le funzioni Col rispettano le righe escluse tramite la funzione Excluded(Row State()).
Col Massimo( :altezza, :sesso, Escluso( Stato riga() ) );
Tuttavia, questa sintassi non sembra funzionare.Qualcuno può suggerire la sintassi corretta?
SceneggiaturaRe: funzioni Col e stati di rigaPenso che sia lo stesso concetto di quello dietro il binning. Stai mappando un valore su un altro per ogni osservazione, in questo caso un valore di gruppo. Potrebbe essere un bidone. Potrebbe essere una misura della tendenza centrale.
Re: funzioni Col e stati di rigaOk grazie.Non riesco davvero a capire l'idea di generare una statistica di colonna per ogni riga della tabella, ma suppongo che debbano esserci casi d'uso.Continuerò a utilizzare una funzione definita dall'utente per calcolare le statistiche delle colonne tenendo conto delle esclusioni di riga.
Re: funzioni Col e stati di rigaSecondo il documentazione , quando viene specificata una variabile Per, la funzione deve essere utilizzata in una formula di colonna o Per ogni riga():
(Facoltativo) A Per variabile da calcolare statistica s su gruppi di righe. Utilizzare la variabile Per in a col umn formula o in a Per ogni riga() funzione.
Nel rivedere alcuni degli esempi precedenti in questo post, sono d'accordo sul fatto che sembra trattare i valori esclusi come propri Per livello.
Re: funzioni Col e stati di rigaSembra che venga utilizzato con una formula di colonna in cui la funzione Row() è definita mentre viene valutata.
Re: funzioni Col e stati di rigaSu un computer funziona:

E dall'altro fallisce:

Re: funzioni Col e stati di rigaLavorare con Big Class (ovviamente):
colmaximum(:height,excluded(rowstate()))
Questo sta funzionando.Ma su un computer ma non su un altro.Entrambi in esecuzione 15.1.0.
Ora sono completamente confuso!
Screenshot nel prossimo post...
Re: funzioni Col e stati di rigaInteressante. Una build pre-release di JMP 16 sembra funzionare correttamente per r=1 e r=2, ma non in seguito:
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( "" ) )
)
)
)
);Re: funzioni Col e stati di rigaDave,
Molto confuso. Penso che questa sia una domanda per la nostra amica Wendy.Re: funzioni Col e stati di rigaPosso codificare una soluzione - la mia domanda riguardava specificamente se la versione 15 consentisse di eseguirla esclusivamente utilizzando le funzioni di colonna - questa è stata l'impressione che ho avuto dalle note di rilascio.
Re: funzioni Col e stati di rigaForse onorare significa in questo caso che l'escluso è solo aggiuntivo perVar nelle formule delle statistiche delle colonne?
Se vuoi il valore massimo della colonna senza valori esclusi, potresti usare Riepiloga invece di Col Massimo? Sembra ignorare le righe escluse.
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));Re: funzioni Col e stati di rigaHo testato con v15.2 e il problema è lo stesso.Nota che il caso d'uso sta usando la funzione all'interno di uno script, non all'interno di una formula di colonna (non sono sicuro del motivo per cui vorrei una statistica di colonna in una riga).
Re: funzioni Col e stati di rigaAggiungerò questo esempio molto semplice qui se qualcun altro viene in giro:

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])
);Re: funzioni Col e stati di rigaGrazie per avermi fatto sapere.Non funziona con 15.1 - Proverò a fare un confronto con 15.2.
Re: funzioni Col e stati di rigaHo testato rapidamente e sembrava che l'utilizzo solo di Excluded() sembrava funzionare (sto usando 15.2.1).