Riepiloga i dati di risposta al tipo di modellazione a risposta multiplaHo una tabella di lotti e wafer, a cui è stato assegnato un codice di risposta basato sulla resa (rosso, verde, blu; non è una mia scelta, ma è quello con cui devo lavorare). Esistono combinazioni di lotti e wafer a cui sono assegnate più risposte. Quello che voglio fare è riassumere la tabella per lotto e wafer, e dove una combinazione ha più risposte aggiungere tutti i valori alla variabile.
Da:
A:

Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaHai ragione che:
dt2 << selectRows(r2);
funziona anche. È possibile che nel 2012 "selectRows" avesse bisogno di una matrice. Ma è più probabile che pensassi che fosse così. . .
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaDomanda: @ian_jmp puoi spiegare cosa sta succedendo con: dt2 << selectRows(Matrice({r2})); ? Perché la matrice per un singolo numero intero?
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaÈ andata così, anche se devo ancora provare la sceneggiatura di Ian. Ho usato Tabulate e Recode per eseguire il primo passaggio che hai eseguito con lo stack, ma ho ottenuto lo stesso risultato per il passaggio due, che non avevo mai utilizzato prima. Di nuovo, grazie per l'aiuto.
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaNon l'avevo fatto. Grazie per il puntatore. Non avrei mai associato la ricerca sui consumatori con l'analisi dei dati di monitoraggio del controllo di processo da una fonderia di semiconduttori
)
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaGrazie, ci proverò.
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaGrazie, speravo che ci fosse un singolo processo che mi mancava, ma questo mi porterà lì.
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaHai visto Aiuto > Libri > Ricerca sui consumatori > Analisi della risposta categorica capitolo? La piattaforma Categorical gestisce molto bene il tipo di risposta multipla e fornisce molti modi per riassumere e visualizzare tali dati.
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaCIAO @MarkDayton ,
Forse stavi cercando una soluzione con script, nel qual caso puoi smettere di leggere... @ian_jmp Funziona perfettamente. Tuttavia, se vuoi farlo in modo interattivo, quanto segue dovrebbe funzionare per te:
1. Utilizzare Tabelle->Dividi (posizionare Risposta nei ruoli Dividi per e Dividi colonne e Lotto, Wafer nel ruolo Raggruppa per):

2. Nella nuova tabella, selezionare le nuove colonne e quindi utilizzare il menu Cols->Utilities->Unisci colonne per creare la nuova colonna a risposta multipla:

3. Premere Elimina per eliminare le colonne selezionate.
Spero che questo ti aiuti.
Oggetto: riepilogare i dati di risposta al tipo di modellazione a risposta multiplaAvevo del vecchio codice che potrebbe essere d'aiuto. Forse ora c'è un modo migliore:
// 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");