Wenn ich das folgende Skript in JMP 10 ausführe, erhalte ich die Fehlermeldung: „Argument sollte Matrix{1} beim Zugriff oder bei der Auswertung von „Loc Max“ sein, schlechtes Argument ...“
Es sieht so aus, als ob die Indizierung von Datentabellen eine Funktion in JMP13 ist. Was wäre die Lösung in JMP10?
dt = New Table( "Untitled",
Neue Spalte( „a“, Numerisch, Werte festlegen( [1, 33, 1] ) ),
Neue Spalte( „b“, Numerisch, Werte festlegen( [2, 2, 2] ) ),
Neue Spalte( „c“, Numerisch, Werte festlegen( [333, 1, 0] ) ),
Neue Spalte( „maxval“, numerisch ),
Neue Spalte( „maxcol“, Numerisch )
);
colnames = dt << getcolumnnames;
Für jede Reihe(
r = Row();
// 1::3 bedeutet die Spalten 1 bis 3. {a,b,c} würde auch funktionieren.
location = Loc Max( dt[ r, 1 :: 3] ); // Position des Maximalwerts im Array
maxval = dt[r, Ort];
maxcol = colnames[location] << getname;
);
Danke!
Sie können die Werte zunächst als Matrix abrufen und dann jede Zeile aus der Matrix anstelle der Datentabelle abrufen:
dt = New Table( "Untitled",
New Column( "a", Numeric, Set Values( [1, 33, 1] ) ),
New Column( "b", Numeric, Set Values( [2, 2, 2] ) ),
New Column( "c", Numeric, Set Values( [333, 1, 0] ) ),
New Column( "maxval", numeric ),
New Column( "maxcol", Numeric )
);
colnames = dt << getcolumnnames;
values = dt << Get As Matrix;
For Each Row(
r = Row();
// 1::3 means columns 1 through 3. {a,b,c} would also work.
location = Loc Max( values[r, 1 :: 3] ); // location of maximum value in array
maxval = dt[r, location];
maxcol = colnames[location] << getname;
);