Come contare un insieme di elementi nelle colonneSalve staff ed esperti di JMP,
Ho un problema semplice, penso che JSL sarebbe l'approccio migliore, ma non so come codificare in JSL. Probabilmente dovrei trovare il tempo e imparare!
Fondamentalmente, ho un elenco di elementi, "Tè", "Uova", "Pane", "Latte" ecc. Ogni elemento appare da solo in una colonna e il numero di colonne può variare ma verrebbe corretto in una particolare istanza di tabella . Ogni riga rappresenta un'osservazione indipendente di elementi. Un elemento specifico può apparire in qualsiasi colonna, in qualsiasi riga ma solo una volta nella riga oppure non apparire affatto.
Vorrei utilizzare uno script JSL per indicare in una nuova colonna se un particolare insieme di elementi (ad esempio "Tè", "Latte", "Pane") esiste o meno in una riga particolare. L'ordine in cui si verificano in una riga non ha importanza. Tuttavia, l'insieme di elementi che sto contando devono apparire tutti. Spero di utilizzare questo JSL come modello per modificare ed eseguire query sulla presenza di insiemi di elementi in tabelle con righe fino a 10000. Alla fine vorrei ricavare statistiche come: il 10% delle voci ha "Tè" e "Bacon", il 5% ha "Tè", "Latte", "Yoghurt" ecc.
Esiste una piattaforma JMP in grado di farlo?
In allegato è riportato un set di dati di esempio.
Grazie molto!
Automazione e scriptingCombinazione e pulizia dei datiPersonalizzazione di massaIngegneria della qualità e dei processiRe: Come contare un insieme di elementi su più colonneGrazie @txnelson !
Re: Come contare un insieme di elementi su più colonneEcco un'opzione utilizzando array associativi e le relative operazioni sugli insiemi
Names Default To Here(1);
dt = Open("$DOWNLOADS/items.jmp");
list_to_search_for = {"Tea", "Milk", "Bread"};
aa_mask = Associative Array(list_to_search_for);
dt << New Column("Match", Numeric, Continuous, << Set Each Value(
aa_row = Associative Array(dt[Row(), 0]);
temp_mask = aa_mask;
temp_mask << Remove(aa_row);
If(N Items(temp_mask) == 0,
1
,
0
);
));

quelli di JMP Piattaforma di ricerca sui consumatori potrebbe anche essere utile ma non l'ho usato quindi non sono sicuro che possa cercare le combinazioni di cui hai bisogno (l'associazione condizionale potrebbe essere utile?)

Re: Come contare un insieme di elementi su più colonneEcco una formula che inserirà un 1 nella colonna dell'indicatore se la combinazione di Pane e Yogurt viene trovata in una determinata riga e uno 0 se non viene trovata
dt = Current Data Table();
itemList = dt[Row(), Index( 1, 5 )];
If( Contains( itemList, "Bread" ) & Contains( itemList, "Yoghurt" ),
1,
0
);