Hallo,
Ich versuche, eine for-Schleife auszuführen, um mehrere Datenspalten zu kategorisieren. Von den 3 oder 4 Spalten bestimmt die Spalte mit dem höchsten Wert eine Kategorie für die gesamte Zeile. Ich habe versucht, diese Formel in einer neuen Spalte ohne Erfolg zu verwenden. Als Referenz verwende ich eine Untermenge von Daten, die ich später als eigene Datei gespeichert habe.
For( i = 1, i < N Row( :Linked Subset ), i++, If( :Linked Subset[i][5] > :Linked Subset[i][3], :Label = "Hormone", If( :Linked Subset[i][4] > :Linked Subset[i][3] & :Linked Subset[i][6] > :Linked Subset[i][3], :Label = "ImmunoChemo", If( :Linked Subset[i][4] > :Linked Subset[i][3], :Label = "Chemo", If( :Linked Subset[i][6] > :Linked Subset[i][3], :Label = "Immuno", :Label = "None" ) ) ) ) )
Ich habe dann versucht, dieses Skript auszuführen
dt = Open( "~/One Drive/Work/Research/Exported CSV/Subset.jmp" );
For( i = 1, i < N Row( :Linked Subset ), i++,
If( :Linked Subset[i][5] > :Linked Subset[i][3],
:Label = "Hormone",
If( :Linked Subset[i][4] > :Linked Subset[i][3] & :Linked Subset[i][6] > :Linked Subset[i][3],
:Label = "ImmunoChemo",
If( :Linked Subset[i][4] > :Linked Subset[i][3],
:Label = "Chemo",
If( :Linked Subset[i][6] > :Linked Subset[i][3],
:Label = "Immuno",
:Label = "None"
Jede Hilfe, warum das Skript oder die Formel nicht funktioniert, wird sehr geschätzt. Ich gebe zu, ich war ein bisschen verloren, als ich versuchte, das Skript zu schreiben. Ich denke, es ist ein bisschen weit weg von dem, was es sein sollte. Ich habe die Datei verlinkt, musste jedoch die erste Spalte der Datentabelle aus Datenschutzgründen entfernen.
Vielen Dank
Danke fürs klarstellen! Ich habe versucht, (: Linked-Subset) durch (dt) in der Formel zu ersetzen, es wurden jedoch keine Kategorien für die angegebene Spalte ausgegeben. Ich habe auch Ihre bereinigte Version ausprobiert, aber es hat immer noch nicht funktioniert. Irgendwelche Ideen, warum es immer noch ein Problem mit der Formel gibt?
Danke für all die Hilfe.
JMP wird verwirrt, da Sie als Tabellenvariable eine Spaltennamenreferenz (: Linked Subset) verwenden. Sie können auch Ihre if-Anweisungen mit nur einem IF bereinigen. Ich bin nicht sicher, ob dies genau das ist, was Sie wollen, aber es könnte Ihnen einige Hinweise geben, um Sie Ihrem Ziel näher zu bringen.
dt = Open( "~/One Drive/Work/Research/Exported CSV/Subset.jmp" );
For( i = 1, i < N Row( dt ), i++,
If(dt[i][5] > dt[i][3],
:Label = "Hormone",
dt[i][4] > dt[i][3] & dt[i][6] > dt[i][3],
:Label = "ImmunoChemo",
dt[i][4] > dt[i][3],
:Label = "Chemo",
dt[i][6] > dt[i][3],
:Label = "Immuno",
:Label = "None"
);
);