수율에 따라 응답 코드가 할당된 로트 및 웨이퍼 테이블이 있습니다(빨간색, 녹색, 파란색; 내 선택은 아니지만 작업해야 하는 것임). 여러 응답이 할당된 로트와 웨이퍼의 조합이 있습니다. 내가 하고 싶은 것은 로트와 웨이퍼로 표를 요약하고 조합에 여러 응답이 있는 경우 모든 값을 변수에 추가하는 것입니다.
에서:
에게:

당신은 맞습니다:
dt2 << selectRows(r2);
또한 작동합니다. 2012년에는 'selectRows'에 행렬이 필요했을 가능성이 있습니다. 하지만 내가 그렇게 생각했을 가능성이 더 큽니다. . .
질문: @ian_jmp 무슨 일이 일어나고 있는지 설명해 주시겠습니까? dt2 << selectRows(Matrix({r2})); ? 단일 인터거에 대한 매트릭스가 필요한 이유는 무엇입니까?
그래도 Ian의 스크립트를 시도해야 합니다. 나는 스택으로 수행한 첫 번째 단계를 수행하기 위해 Tabulate 및 Recode를 사용했지만 이전에 사용하지 않은 두 번째 단계에서 동일한 결과를 얻었습니다. 다시 한 번 도움을 주셔서 감사합니다.
나는하지 않았다. 포인터 주셔서 감사합니다. 소비자 조사를 반도체 파운드리의 프로세스 제어 모니터링 데이터 분석과 연결하지 않았을 것입니다
)
감사합니다. 제가 놓친 단일 단계 프로세스가 있기를 바랐지만 이것이 저를 거기에 데려다 줄 것입니다.
봤어? 돕다 > 서적 > 소비자 조사 > 범주형 응답 분석 장? 범주형 플랫폼은 다중 응답 유형을 매우 잘 처리하고 이러한 데이터를 요약하고 시각화하는 다양한 방법을 제공합니다.
안녕 @MarkDayton ,
아마도 스크립트 솔루션을 찾고 있었을 것입니다. 이 경우 읽기를 중단할 수 있습니다... @ian_jmp 완벽하게 작동합니다. 그러나 이 작업을 대화식으로 수행하려는 경우 다음이 적합합니다.
1. Tables->Split을 사용합니다(Response는 Split By 및 Split Columns 역할에 배치하고 Lot, Wafer는 Group By 역할에 배치).

2. 새 테이블에서 새 열을 선택한 다음 Cols->Utilities->Combine Columns 메뉴를 사용하여 새로운 다중 응답 열을 만듭니다.

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");