Ich habe 2 Dateien erstellt, um mein Problem zu demonstrieren.
In „Test 1“ habe ich Daten von 4 Personen (dh AAAA, BBBB, CCCC, DDDD). Jede Person hat 8 Antworten auf eine "Schätzungs"-Frage und 8 Antworten auf eine "Wahrheits"-Frage. Die Hälfte der Antworten stammt von Domäne "0" und die andere Hälfte von Domäne "1".
Ich würde gerne die Korrelation zwischen der Schätzung und der Wahrheitsfrage für jede Person in jedem Bereich finden. Ich weiß, dass ich das tun kann, indem ich zu Analysieren / Multivariate Methoden / Multivariate gehe und die Schätzungs- und Wahrheitsfragen in das Feld "Y, Columns" und sowohl "ID" als auch "Domain" in das Feld "By" einfüge.
Das Problem ist, dass ich möchte, dass sich die Ausgabe dieser Analyse in einer anderen JMP-Tabelle befindet, damit ich weitere Analysen zu den Korrelationen durchführen kann. Zum Beispiel möchte ich wissen, wie die durchschnittliche Personen-Korrelation zwischen Schätzung und Wahrheit in jedem der Bereiche ist. Dazu benötige ich eine Datei, die wie die Daten in der Datei „Test 2“ aussieht.
Können Sie mir bitte einen automatischen Weg nennen, um die "Test 2"-Daten aus den Test 1-Daten zu erzeugen? Ich kann dies nicht manuell tun, da der tatsächliche Datensatz, mit dem ich arbeite, riesig ist.
Sie könnten die 'makeCombinedDataTableMessage' explodieren. In JSL so etwas wie:
NamesDefaultToHere(1);
// Data table
dt = DataTable("Test 1.jmp");
// Multivariate
m = dt << Multivariate(Y( :Estimate, :Truth ), By( :ID, :Domain ));
// 'm' is a list because of the 'By' variable: Get the report for the first level
mRep = Report(m[1]);
// Get the correlation matrix into a table dt2 (for all levels)
dt2 = mRep[MatrixBox(1)] << makeCombinedDataTable;
// Manipulate dt2 to remove redundancy
dt2 << setName("Correlation Coefficients For By Groups");
dt2 << deleteColumns({3, 4});
r2del = dt2 << getRowsWhere(:Truth == 1);
dt2 << deleteRows(r2del);
Column(dt2, "Truth") << setName("Correlation Coefficient")