列全体の項目セットをカウントする方法こんにちは、JMP スタッフおよび専門家、
JSL が最良のアプローチだと思うという単純な問題がありますが、JSL でコーディングする方法がわかりません。 時間を見つけて勉強したほうがいいかもしれません!
基本的に、「お茶」、「卵」、「パン」、「牛乳」などのアイテムのリストがあります。各アイテムは列内に単独で表示され、列の数は変わる可能性がありますが、特定のテーブル インスタンスでは固定されます。 。 各行は項目の独立した観察を表します。 特定の項目は、どの列、どの行にも表示できますが、1 行に 1 回だけ表示されるか、まったく表示されません。
JSL スクリプトを使用して、特定の項目セット (「お茶」、「牛乳」、「パン」など) が特定の行に存在するかどうかを新しい列で示したいと考えています。 行内での出現順序は関係ありません。 ただし、数えている項目のセットはすべて出現する必要があります。 この JSL をテンプレートとして使用して、最大 10000 行のテーブル内の項目セットの出現を変更およびクエリしたいと考えています。 最終的には、エントリの 10% に「お茶」と「ベーコン」が含まれ、5% に「お茶」、「牛乳」、「ヨーグルト」が含まれるなどの統計を導き出したいと考えています。
これを実行できる JMP プラットフォームはありますか?
データセットの例を添付します。
どうもありがとう!
自動化とスクリプト作成データのブレンディングとクリーンアップマスカスタマイゼーション品質およびプロセスエンジニアリングRe: 複数の列にわたる一連の項目をカウントする方法ありがとう@txnelson !
Re: 複数の列にわたる一連の項目をカウントする方法ここに 1 つのオプションがあります連想配列とその集合演算を使用する
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の消費者調査プラットフォームも役立つかもしれませんが、私はそれを使用したことがないので、必要な組み合わせを検索できるかどうかはわかりません(条件付き関連付けは役立つかもしれません?)

Re: 複数の列にわたる一連の項目をカウントする方法これは、パンとヨーグルトの組み合わせが特定の行で見つかった場合はインジケーター列に 1 を配置し、見つからなかった場合は 0 を配置する数式です。
dt = Current Data Table();
itemList = dt[Row(), Index( 1, 5 )];
If( Contains( itemList, "Bread" ) & Contains( itemList, "Yoghurt" ),
1,
0
);