如何計算跨列的一組項目JMP 員工和專家您好,
我有一個簡單的問題,我認為 JSL 將是最好的方法,但我不知道如何在 JSL 中編碼。 我也許應該找時間學習!
基本上,我有一個項目列表,“茶”,“雞蛋”,“麵包”,“牛奶”等。每個項目單獨出現在一列中,列數可以變化,但會在特定的表實例中固定。 每行代表對項目的獨立觀察。 特定項目可以出現在任何列、任何行中,但只能在一行中出現一次或完全不出現。
我想使用 JSL 腳本來指示新列中特定行中是否存在一組特定的項目(例如“茶”、“牛奶”、“麵包”)。 連續出現的順序並不重要。 但是,我正在計算的一組項目必須全部出現。 我希望使用這個 JSL 作為範本來修改和查詢行數最多為 10000 的表中項目集的出現。 最終我想得出統計數據,例如:10%的條目有“茶”和“培根”,5%有“茶”,“牛奶”,“酸奶”等
有沒有 JMP 平台可以做到這一點?
附件是一個範例資料集。
非常感謝!
自動化和腳本編寫資料混合與清理大規模客製化品質和工藝工程回覆:如何計算跨列的一組項目謝謝@tx尼爾森!
回覆:如何計算跨列的一組項目這是一種選擇使用關聯數組及其集合運算
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
);
));

JMP的消費者研究平台可能也有幫助,但我還沒有使用過它,所以我不確定它是否可以找到您需要的組合(條件關聯可能會有所幫助?)

回覆:如何計算跨列的一組項目下面是一個公式,如果在給定行中找到麵包和優格的組合,則在指示符列中放置 1,如果未找到,則在指示符列中放置 0
dt = Current Data Table();
itemList = dt[Row(), Index( 1, 5 )];
If( Contains( itemList, "Bread" ) & Contains( itemList, "Yoghurt" ),
1,
0
);