Auffüllen einer neuen Spalte mit einer bedingten FormelIch versuche, eine neue Spalte (: Prog_) mit "A" oder "B" zu füllen, basierend auf dem Wert von (: Monat zuweisen).: Assign Month ist eine numerische, kontinuierliche m / d / y-Variable.
Das folgende Skript führt dazu, dass die Spalte: Prog_ gefüllt wird, jedoch nicht mit den Werten, mit denen ich die Spalte: Prog_ füllen möchte.
Ich möchte die Spaltenzeilen: Prog_ mit einem "A" füllen, wenn: Monat zuweisen <= "15.06.2016"
Ich möchte die Spaltenzeilen: Prog_ mit einem "B" füllen, wenn: Monat zuweisen ist> 15.06.2016 "
Hier ist das Skript, das ich bisher (erfolglos) verwendet habe:
CT << Neue Spalte ("Prog_", Zeichen);
Für jede Zeile (Prog_ = if (Char (Format (: Monat zuweisen, "m / d / y")) <= "15.06.2016", "A", "B"));
CT << Neue Spalte ("Prog_", Zeichen);
Für jede Zeile (Prog_ = if (: Monat zuweisen <= 15.06.2016, "A", "B"));
SkriptingBetreff: Füllen einer neuen Spalte mit einer bedingten FormelHallo,
Stellen Sie zunächst sicher, dass die Spalte: Monat zuweisen als numerisches, kontinuierliches Datumsformat formatiert ist. Ich vermute, dass Ihre Verwendung von Anführungszeichen in Ihrer Formel darauf hinweist, dass dies derzeit nicht der Fall ist.
Zweitens müssen Sie JMP nicht anweisen, sich jede Zeile anzusehen, sondern standardmäßig.
Drittens sollte die Formel in der Spalte: Prog_ einfach lauten:
If (: Spalte 1 <= Datum MDY (16, 05, 2016),
"EIN",
"B"
)
Wenn dies Teil eines JSL-Skripts ist, sollte die Funktion in der New Column-Anweisung enthalten sein (die genaue Syntax finden Sie in der Scripting-Hilfe.
Beste,
TSBetreff: Füllen einer neuen Spalte mit einer bedingten FormelHier ist, wie ich normalerweise mit dieser Art von Problem umgehe.Die Funktion Informat () konvertiert eine Zeichenfolge in eine numerische Darstellung des Datums, die dann leicht mit JMP DateTime-Werten verglichen werden kann.
CT = Current Data Table();
CT << New Column( "Prog_", Character );
For Each Row( Prog_ = If( :Assign Month <= Informat( "06/15/2016", "mdy" ), "A", "B" ) );
Und zu ergänzen @ Thierry_S Sie könnten For Each Row () vermeiden, wenn Sie eine Formelspalte erstellen
CT = Current Data Table();
CT << New Column( "Prog_",
Character,
formula(
If( :Assign Month <= Informat( "06/15/2016", "mdy" ),
"A",
"B"
)
)
);
Betreff: Füllen einer neuen Spalte mit einer bedingten FormelIhre ursprüngliche Variable ist numerisch und repräsentiert einen JMP-Wert für Datum und Uhrzeit. Es ist nicht erforderlich, es in eine formatierte Zeichenfolge zu konvertieren. Sie können den Zeitschwellenwert direkt als Konstante angeben.
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );