ロットとウェーハのテーブルがあり、歩留まりに基づいて応答コードが割り当てられています (赤、緑、青。私が選択したものではありませんが、これは私が扱う必要があるものです)。 複数の応答が割り当てられているロットとウェーハの組み合わせがあります。 私がやりたいのは、ロットとウェーハごとに表を要約し、組み合わせに複数の応答がある場合は、すべての値を変数に追加することです。
から:
に:

あなたは次のように答えています。
dt2 << selectRows(r2);
も機能します。 2012 年には「selectRows」に行列が必要だった可能性があります。 しかし、それは私がそう思っただけである可能性が高いです。 。 。
質問: @ian_jmp何が起こっているのか説明してもらえますか? dt2 << selectRows(Matrix({r2})); ? なぜ単一の整数に対して行列を使うのでしょうか?
これで完了しましたが、まだ Ian のスクリプトを試す必要があります。 スタックで行った最初のステップを実行するために Tabulate と Recode を使用しましたが、これまで使用したことのないステップ 2 でも同じ結果になりました。 もう一度、助けてくれてありがとう。
しなかった。 ご指摘ありがとうございます。 私なら、Consumer Research を半導体ファウンドリからのプロセス制御監視データの分析と結びつけることは決してなかっただろう
)
ありがとう、欠けている単一ステップのプロセスがあることを期待していましたが、これでそこに到達します。
あなたは見ましたかヘルプ>本>消費者調査>カテゴリカル応答分析章? カテゴリカル プラットフォームは、複数の回答タイプを非常にうまく処理し、そのようなデータを要約して視覚化するさまざまな方法を提供します。
こんにちは@MarkDayton 、
おそらく、スクリプトによる解決策を探していたのでしょう。その場合は、読むのをやめても構いません... @ian_jmpは完璧に動作します。 ただし、これを対話的に実行したい場合は、次の方法でうまくいくはずです。
1. [テーブル] -> [分割] を使用します ([応答] を [分割] および [列の分割] ロールに配置し、[ロット]、[ウェーハ] を [グループ化] ロールに配置します)。

2. 新しいテーブルで新しい列を選択し、[列]->[ユーティリティ]->[列の結合]メニューを使用して新しい複数回答列を作成します。

3. 削除を押して、選択した列を削除します。
お役に立てれば。
役立つかもしれない古いコードがいくつかありました。 おそらく、今ではもっと良い方法があるでしょう:
// ian.cox@jmp.com: 23Jun2012
NamesDefaultToHere(1);
// **********************************************************************************************
// Given a table (dt), a list of grouping columns therein (gCols), and a character response
// column (rCol), aggregates the latter into a multiple response column
// **********************************************************************************************
mrSummarize =
Function({dt, gCols, rCol}, {Default Local},
// Summarize using the specified grouping columns to get dt2
dt2 = dt << Summary(Group(gCols));
dt2 << setName("Multiple Response Summary of "||(dt << getName));
// Loop over the rows of dt2 and build a new column with the multiple response values:
// Exploit the linking between dt2 and dt to do this
dt2 << newColumn(rCol, Expression, None);
for(r2=1, r2<=NRow(dt2), r2++,
dt2 << clearSelect;
dt2 << selectRows(Matrix({r2}));
r = dt << getSelectedRows;
// Response values are initially put in a list to make getting the unique values easier
mr2 = {};
for(i=1, i<=NRow(r), i++,
InsertInto(mr2, Column(dt, rCol)[r[i]]);
);
// Force the values in the list to be unique
mr2 = associativeArray(mr2) << getKeys;
// Put the list of unique values in the table
Column(dt2, rCol)[r2] = mr2;
);
dt2 << clearSelect;
// Now need to 'unpack' each list to get values suitable for the 'Multiple Response' modeling type
allLists = Column(dt2, rCol) << getValues;
for(r2=1, r2<=NRow(dt2), r2++,
mr2 = allLists[r2];
for(i=1, i<=NItems(mr2), i++,
if(i==1,
str2 = mr2[i],
str2 = str2 || ", " || mr2[i];
);
);
allLists[r2] = str2;
);
Column(dt2, rCol) << setDataType("Character");
Column(dt2, rCol) << setModelingType("Multiple Response");
Column(dt2, rCol) << setValues(allLists);
dt2;
);
// Sample table
dt = New Table( "Data",
Add Rows( 3 ),
New Column( "Lot",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [1, 1, 2] )
),
New Column( "Wafer",
Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values( [2, 2, 1] )
),
New Column( "Response",
Character,
"Nominal",
Set Values( {"Green", "Red", "Blue"} )
)
);
// Try out the function
mrSummarize(dt, {"Lot", "Wafer"}, "Response");