Finden Sie den Wert und ersetzen Sie ihnHallo allerseits,
Ich habe diese Art von Datentabelle (siehe angehängte Datei). Ich möchte alle Werte ermitteln, die außerhalb von 2 Schwellenwerten (-0,5 und 0,5) liegen, und sie durch die Höchstwerte ersetzen. Beispiel: -5,30, -6,00, -11,56 müssen durch den gleichen Wert von -5,00 ersetzt werden und 5,30, 6,00 und 11,56 werden durch 5,00 ersetzt.
Haben Sie einen Vorschlag, dies auf einfache Weise zu tun?
Danke im Voraus
Re: Finde den Wert und ersetze ihnVielen Dank MS,
Ihre erste Option funktioniert sehr gut!
PA
Re: Finde den Wert und ersetze ihnWenn Sie darüber nachdenken, dies mit JSL zu tun, gibt es mehrere Möglichkeiten.
Sie können beispielsweise einfach die Spalten durchlaufen und Zellen bedingt ersetzen
dt = Data Table("test.jmp");
For(i = 8, i <= N Col(dt), i++,
ur = dt << get rows where(Column(dt, i)[] > 0.5);
lr = dt << get rows where(Column(dt, i)[] < -0.5);
Column(dt, i)[ur] = 5;
Column(dt, i)[lr] = -5;
);
Eine Alternative (JMP 13) ist das Arbeiten mit Datentabellen als Matrizen unter Verwendung von Subskripten. Die Syntax unterstützt auch die Zuordnung, dh das Ersetzen von Zellenwerten. Hier ist ein Beispiel:
dt = Data Table("test.jmp");
t = 0.5; // Treshold value
c = 5; // Ceiling value
nr = N Row(dt);
nc = N Col(dt);
M = dt[1 :: nr, 8 :: nc];// Matrix with all cells from col 8 to end of table
U = M <= t; // Below upper limit?
L = M >= -t; // Above lower limit?
//Assign treshold values to data table
dt[1 :: nr, 8 :: nc] = M :*</img> (U & L) + c * (!U - !L);