Zurückschreiben in JSL unter Beibehaltung der meisten AnfangswerteHallo,
Ich habe eine Spalte mit Wahrscheinlichkeiten. Meistens sind das einfach Zahlen zwischen 0 und 1. Bei einer Wahrscheinlichkeit von 100% bekomme ich jedoch 100 statt 1. Meine Idee, das Problem zu beheben, war einfach, die Umkodierungsfunktion zu verwenden und dann alle Vorkommen von „100“ durch „1“ zu ersetzen.
Der von mir verwendete Codeausschnitt ist:
dt << Recode Column (
:"probability"n,
{IF( _rcNOW == 100, 1)},
Target Column (:"probability"n)
);Dies funktioniert teilweise, das Problem ist, dass in allen Fällen, in denen die Wahrscheinlichkeit < 100 ist, die aktualisierte Spalte leer ist. Das liegt daran, dass die IF-Anweisung in diesem Fall nicht weiß, was zu tun ist. Gibt es eine Möglichkeit, dies in diesem Fall zu erkennen und einfach den ursprünglichen Wert beizubehalten?
Automatisierung und SkriptingDatenzusammenführung und -bereinigungBetreff: Neuberechnung in JSL unter Beibehaltung der meisten AnfangswerteMachen Sie es interaktiv in JMP und JMP erstellt ein Skript für Sie. Ich habe zum Beispiel eine Tabelle

Und ich möchte 100 zu 1 ändern


JMP erstellt ein Skript für Sie

Und Sie können es bereinigen und ein wenig ändern und es so aussehen lassen
dt << Recode Column(
dt:Prob,
{Map Value(_rcOrig, {100, 1}, Unmatched(_rcNow))},
Target Column(:Prob)
);
JMP hat dieses Skript im Grunde für mich erstellt, ohne dass ich JSL schreiben musste.
Betreff: Neuberechnung in JSL unter Beibehaltung der meisten AnfangswerteDanke, das hat perfekt funktioniert! (und sieht im Nachhinein offensichtlich aus).
Tatsächlich könnte ich es problemlos interaktiv tun, aber ich müsste es möglicherweise auf verschiedenen Dateien ausführen, daher bevorzuge ich eine Skriptlösung.
Was meinst du mit „Kartenwert“? (Oder ist das der interaktive Ansatz?)
Betreff: Neuberechnung in JSL unter Beibehaltung der meisten AnfangswerteIch denke, Sie können _rcNOW in Ihrer else-Anweisung verwenden
dt << Recode Column(
:"probability"n,
{If(_rcNOW == 100,
1
, _rcNOW
)},
Target Column(:"probability"n)
);
aber wenn Sie nur 100 in 1 ändern möchten, ist die Verwendung von Map Value (der grundlegendste Umcodierungsvorgang) möglicherweise einfacher. Ich denke, Sie können dies einfach interaktiv über das Umcodierungsmenü tun.