Füllen einer neuen Spalte mithilfe einer bedingten FormelIch versuche, eine neue Spalte ( :Prog_ ) entweder mit „A“ oder „B“ zu füllen, basierend auf dem Wert von (:Assign Month).:Assign Month ist eine numerische, kontinuierliche M/T/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 :Assign Month <= „15.06.2016“
Ich möchte die Spaltenzeilen :Prog_ mit einem „B“ füllen, wenn :Assign Month > 15.06.2016 ist.
Hier ist das Skript, das ich bisher (erfolglos) zu verwenden versucht habe:
CT << New Column("Prog_", Character);
Für jede Zeile(Prog_ = if( Char(Format(:Assign Month,"m/d/y")) <= "15.06.2016", "A", "B" ));
CT << New Column("Prog_", Character);
Für jede Zeile(Prog_ = if( :Assign Month <= 15.06.2016, "A", "B" ));
Erweiterte statistische ModellierungAutomatisierung und SkripterstellungVerbraucher- und MarktforschungQualitäts- und VerfahrenstechnikErgebnisse teilen und kommunizierenBetreff: Füllen einer neuen Spalte mithilfe einer bedingten FormelVielen Dank für Ihre Hilfe bei diesem Skript!
Dan F.
Betreff: Füllen einer neuen Spalte mithilfe einer bedingten FormelHallo Mark – Danke für deine Hilfe bei diesem Skript!
Dan F.
Betreff: Füllen einer neuen Spalte mithilfe einer bedingten FormelIhre ursprüngliche Variable ist numerisch und stellt einen JMP-Datums- und Uhrzeitwert dar. Eine Konvertierung in eine formatierte Zeichenfolge ist nicht erforderlich. Sie können den Zeitschwellenwert direkt als Konstante angeben.
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );
Betreff: Füllen einer neuen Spalte mithilfe einer bedingten FormelSo gehe ich normalerweise mit solchen Problemen um.Die Funktion Informat() wandelt eine Zeichenfolge in eine numerische Darstellung des Datums um, die dann problemlos 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 um etwas hinzuzufügen @Thierry_S Sie könnten For Each Row() vermeiden, wenn Sie eine Formelspalte erstellen würden
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 mithilfe einer bedingten FormelHallo,
Stellen Sie zunächst sicher, dass die Spalte „Monat zuweisen“ als numerisches, fortlaufendes Datumsformat formatiert ist. Ich vermute, dass die Verwendung von Anführungszeichen in Ihrer Formel darauf hindeutet, dass dies derzeit nicht der Fall ist.
Zweitens müssen Sie JMP nicht anweisen, sich jede Zeile anzusehen, dies geschieht standardmäßig.
Drittens sollte die Formel in der Spalte :Prog_ einfach lauten:
If( :Column 1 <= Date MDY( 16, 05, 2016 ),
"A",
"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 Skripthilfe).
Am besten,
TS