Oggetto: L'utilizzo di Where() per filtrare l'analisi crea una nuova tabella di dati privati collegataLe piattaforme hanno una gestione comune per Where() e By(), che creano entrambe tabelle di sottoinsieme per implementare la funzionalità.Non sono sicuro che ci sia documentazione a questo livello di dettaglio sull'implementazione.
Il sottoinsieme può fornire un'utile distinzione rispetto alla manipolazione dello stato di riga tramite filtri.Questo esempio mostra che quando si adatta un modello ai sottoinsiemi, JMP eviterà di applicare quel modello alle righe che non sono nel sottoinsieme.Se fai la stessa cosa con un filtro, il modello viene applicato a tutte le righe.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :weight ), X( :height ), Fit Line( {Line Color( {212, 73, 88} )} ), By(:sex) );
biv[1] << (Curve[1] << Save Predicteds);
biv2 = dt << Bivariate(
Y( :weight ),
X( :height ),
Fit Line( {Line Color( {212, 73, 88} )} ),
Local Data Filter(
Auto clear( 1 ),
Grouped by AND( 1 ),
Show Histograms and Bars( 0 ),
Add Filter( columns( :sex ), Where( :sex == "F" ) )
)
);
biv2 << (Curve[1] << Save Predicteds);
Se si desidera utilizzare questo tipo di sottoinsieme può dipendere dalle specifiche dell'analisi che si sta eseguendo.
- Dan
L'utilizzo di Where() per filtrare l'analisi crea una nuova tabella di dati privati collegataDi solito non mi interessa quando JMP (JSL) fa qualcosa che non mi aspetto che faccia perché la maggior parte delle volte lo fa funzionare ed è l'unica cosa che mi interessa ... ma oggi mi è venuto in mente qualcosa di "interessante". Se usi Where() per filtrare la tua analisi, ti ritroverai con una tabella di dati privata che è collegata alla tua tabella di dati (con un nome abbastanza strano, in questo caso "Big Class, where -sex == -F-")
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb1 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3)))
),
gb2 = dt << Graph Builder(
Size(534, 456),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Points(X, Y, Legend(3))),
Where(:sex == "F")
)
)
);
Show(gb1 << Get Data Table);
Show(gb2 << Get Data Table);
/*
dt_private = gb2 << Get Data Table;
dt_private << New Data View;
*/
Quindi ho alcune domande riguardo a questo comportamento:
- Succede sempre quando uso Where() in questo modo per filtrare l'analisi (non solo in Graph Builder)?
- Questo è documentato da qualche parte?
- Ci sono più interazioni come questa in JMP in cui crei alcune cose nascoste che potresti incontrare in questo modo (per me questo ha causato problemi con una delle mie funzioni perché ho usato << Ottieni tabella dati per ottenere il riferimento per la tabella dati ma ne ho sbagliato uno, la soluzione semplice era aggiungere il riferimento alla tabella alla funzione come parametro
- Dovrei anche filtrare in questo modo?
Modificare:
Aggiunta di alcune pagine di aiuto che sono almeno in parte correlate a questo
Automazione e scripting