Riepiloga le colonne che contengono più di un valore univocoHo una tabella dati e voglio riassumere le colonne che contengono più di un valore univoco, incluse le righe mancanti. Le colonne con tutte le righe uguali sono noiose e voglio guardare solo quelle più interessanti.
Automazione e scriptingRe: Riepiloga le colonne che contengono più di un valore univocoCi sono diversi modi per farlo, ma penso che il più semplice sia il seguente:
Vai a Cols > Gestore colonne
La tabella risultante avrà una colonna con N Unique che ti dice quanti elementi univoci ci sono in ogni colonna. Avrà anche una colonna con N Missing che ti dice quanti valori mancanti ci sono in quella colonna.
Sfortunatamente, N Unique non viene calcolato automaticamente per le colonne continue, ma il menu a comparsa rosso offre l'opzione per Forzare il calcolo per tutte le colonne Numeriche.
Puoi anche usare quella tabella per selezionare colonne con un solo valore univoco. Quelle colonne vengono poi selezionate nella tabella originale in modo da poterle nascondere ed escludere, così non sarai costretto a vedere quelle colonne "non interessanti".
Re: Riepiloga le colonne che contengono più di un valore univocoIo sono un luddista, temo che JMP17. Grazie, credo di poterlo scrivere, mi chiedevo solo se qualcuno l'avesse già crackato.
Re: Riepiloga le colonne che contengono più di un valore univocoNon mi piace molto "pubblicizzare" i miei componenti aggiuntivi, ma forse Analizza colonne potrebbe essere utile? La versione pubblica dovrebbe funzionare (e funzionare anche con JMP17)). Un semplice script con un loop può anche facilmente rimuovere/escludere/nascondere/o gestire tali colonne.
Re: Riepiloga le colonne che contengono più di un valore univocoBella aggiunta Jarmo! Devo armeggiare un po' con questo, ma sembra fantastico. Ecco lo script che ho creato per riassumere qualsiasi colonna che abbia > 1 voce unica per wafer.
dt = Current Data Table();
colList = Current Data Table() << Get Column Names( String );
dcols = {};
For( i = 1, i <= N Items( colList ), i++,
If( Contains( colList[i], " / " ),
Insert Into( dcols, colList[i] )
)
);
Show( dcols );
Split_Cols = {};
Insert Into( Split_Cols, :wafer );
For( j = 1, j <= N Items( dcols ), j++,
summarize(unique_values = by( Column(dcols[j]) ));
if (N Items(unique_values) > 1, Insert Into( Split_Cols, dcols[j] ) );
);
Show(Split_cols);
Current Data Table() << Summary(
Group( Split_cols ),
Freq( "None" ),
Weight( "None" )
);Re: Riepiloga le colonne che contengono più di un valore univocoSuggerisco di usare For Each, Filter Each e Transform Each al posto del ciclo for la maggior parte delle volte, perché sono più veloci e facili da leggere. Ma possono essere più fastidiosi da correggere e gestire a causa della loro velocità se c'è un problema E hanno un brutto bug/caratteristica". Fortunatamente quel bug/"caratteristica" non è presente in un caso semplice come questo ( problema con Function() default local e funzioni Each ). Non sono sicuro se volessi considerare i valori mancanti come valori "validi", quindi ho lasciato Remove From commentato all'interno del ciclo Filter Each
Names Default To Here(1);
dt = Current Data Table();
collist = dt << Get Column Names("String");
valid_cols = Filter Each({colname}, collist,
Summarize(dt, vals = By(Eval(colname)));
//Remove From(vals, Contains(vals, "")); // drop missing values if necessary
N Items(vals) > 1;
);
dt_summary = dt << Summary(
Group(valid_cols),
Freq("None"),
Weight("None"),
//Link to original data table(0),
Output Table("Non-Unique Summary")
);
Ecco uno script per creare una semplice tabella demo
dt = New Table("demo",
Compress File When Saved(1),
New Column("Column 1", Character, "Nominal", Set Values({"a", "a", "a", "a"})),
New Column("Column 2", Character, "Nominal", Set Values({"b", "b", "b", ""})),
New Column("Column 3", Character, "Nominal", Set Values({"", "", "", ""})),
New Column("Column 4", Character, "Nominal", Set Values({"c", "d", "", ""})),
New Column("Column 5", Character, "Nominal", Set Values({"c", "d", "e", "f"}))
);
Quel componente aggiuntivo è stato creato prima che JMP avesse Columns Manager e lo preferisco ancora a Columns Manager la maggior parte delle volte. Immagino che abbiano diversi casi d'uso e Columns Manager cerca di sostituire la piattaforma Columns Viewer con alcune belle funzionalità extra e Analyse Columns ha preso ispirazione dalprofiling pandas (sembra essere stato rinominato in profiling ydata) perché dovevo essere in grado di controllare rapidamente come apparivano i miei dati in termini di statistiche di riepilogo.