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 Maximum( :height, :sex, Excluded( Row State() ) );
Tuttavia, questa sintassi non sembra funzionare.Qualcuno può suggerire la sintassi corect?
Miscelazione e pulizia dei datiProgettazione di esperimentiRi: Funzioni Col e Stati di rigaPenso che sia lo stesso concetto di quello alla base del binning. Stai mappando un valore a un altro per ogni osservazione, in questo caso un valore di gruppo. Potrebbe essere un bidone. Potrebbe essere una misura della tendenza centrale.
Ri: 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.
Ri: Funzioni Col e Stati di rigaSecondo il documentazione , quando viene specificata una variabile By, la funzione deve essere utilizzata in una formula di colonna o For Each Row():
(Facoltativo) Una variabile By da calcolare statistica s attraverso gruppi di righe. Utilizzare la variabile By in a col umn formula o in a Per ogni riga() funzione.
Nell'esaminare alcuni degli esempi precedenti in questo post, sono d'accordo sul fatto che sembra trattare i valori esclusi come propri per livello.
Ri: Funzioni Col e Stati di rigaSembra che sia usato con una formula di colonna in cui la funzione Row() è definita mentre viene valutata.
Ri: Funzioni Col e Stati di rigaSu un computer funziona:

E dall'altra fallisce:

Ri: Funzioni Col e Stati di rigaLavorare con Big Class (ovviamente):
colmaximum(:height,excluded(rowstate()))
Funziona.Ma su un computer ma non su un altro.Entrambi in esecuzione 15.1.0.
Ora sono totalmente confuso!
Screenshot nel prossimo post...
Ri: 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( "" ) )
)
)
)
);Ri: Funzioni Col e Stati di rigaDave,
Molto confuso. Penso che questa sia una domanda per la nostra amica Wendy.Ri: Funzioni Col e Stati di rigaPosso codificare una soluzione - la mia domanda riguardava in particolare se la versione 15 consentisse di farlo esclusivamente utilizzando le funzioni di colonna - questa è stata l'impressione che ho avuto dalle note di rilascio.
Ri: Funzioni Col e Stati di rigaForse onorare significa in questo caso che l'escluso è solo aggiuntivo byVar nelle formule statistiche delle colonne?
Se desideri il valore massimo della colonna senza valori esclusi, potresti utilizzare 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));Ri: Funzioni Col e Stati di rigaHo provato 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).
Ri: 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])
);Ri: Funzioni Col e Stati di rigaGrazie per avermi fatto sapere.Non funziona con 15.1: proverò a fare un confronto con 15.2.
Ri: Funzioni Col e Stati di rigaHo testato rapidamente e sembrava che usare solo Excluded() sembrava funzionare (sto usando 15.2.1).
Re: Funzioni Col e Stati rigaIn aggiunta a questa discussione, considererei il comportamento delle funzioni Col strano e diverso da quello tipico di JMP e quindi inaspettato e confuso.
Le funzioni Col ignorano l'esclusione delle righe e i filtri, sia locali che globali.
Ciò significa che il filtraggio locale all'interno dell'output di un'analisi viene ignorato con le funzioni col e ottenere risultati con il filtraggio o per sottogruppi non è possibile o addirittura i risultati ottenuti non sono corretti.
La possibilità di escludere alcune righe utilizzando una formula è ancora molto limitante.
Ritengo che questo sia un problema con JMP poiché ciò potrebbe potenzialmente confondere o fuorviare gli utenti. Spero che il team JMP risolva questo problema per far sì che la funzionalità Col aderisca a quella di altre funzioni.
Re: Funzioni Col e Stati riga@Oren_Barilan ,
Per valutare la tua preoccupazione riguardo alle funzioni Col che non seguono la funzionalità esclusa di JMP, Piattaforme, si dovrebbero includere molte più funzioni oltre alle sole funzioni Col.Nell'argomento dovrebbe essere inclusa anche una semplice funzione SQRT() o SUM(), poiché se vengono elaborati per valori su una riga esclusa, anch'essi dovrebbero restituire un valore null.E se così fosse, come gestisci la situazione in cui non vuoi che le righe vengano ignorate?
Quindi, dal mio punto di vista, JMP adotta un approccio più funzionale, consentendo al programmatore di averlo in ogni modo in cui ne ha bisogno.
Col Mean( :weight );
calcola la media su tutte le righe nella tabella dati, mentre
Col Mean( If( Excluded( Row State( Row() ) ), ., :weight ) )
calcola la Media solo sulle righe non escluse
Re: Funzioni Col e Stati rigaSono d'accordo con Jim.
Esiste anche una terza opzione, in cui gestisci Escluso come un proprio "gruppo" (non sono sicuro di come venga gestito nella realtà)
Col Mean(:weight, Excluded())

Il mio unico "problema" con Col Functions è che possono essere pericolosi a causa del modo in cui gestiscono le righe escluse E puoi crearle così facilmente dal menu di scelta rapida. Forse questo rischio potrebbe essere ridotto se JMP includesse automaticamente Excluded() in quelle formule (o lo rendesse una preferenza)?