条件式を使用して新しい列にデータを入力する(:Assign Month)の値に基づいて、新しい列(:Prog_)に「A」または「B」のいずれかを入力しようとしています。:Assign Monthは、数値の連続的なm / d / y変数です。
以下のスクリプトでは、:Prog_列に値が入力されますが、:Prog_列に入力しようとしている値は入力されません。
:Assign Month <= "06/15/2016"の場合、:Prog_列の行に「A」を入力したい
:Assign Monthが> 06/15/2016の場合、:Prog_列の行に「B」を入力したい
これまでに(失敗して)使用しようとしたスクリプトは次のとおりです。
CT << New Column( "Prog _"、Character);
各行について(Prog_ = if(Char(Format(:Assign Month、 "m / d / y"))<= "06/15/2016"、 "A"、 "B"));
CT << New Column( "Prog _"、Character);
各行(Prog_ = if(:Assign Month <= 06/15/2016、 "A"、 "B"));
スクリプティングRe:条件式を使用して新しい列にデータを入力するこんにちは、
まず、:AssignMonth列が数値の連続日付形式としてフォーマットされていることを確認します。数式で引用符を使用していることから、現在はそうではないことがわかります。
次に、JMPに各行を確認するように指示する必要はありません。デフォルトで確認します。
第三に、:Prog_列の式は単純に次のようになります。
If(:Column 1 <= Date MDY(16、05、2016)、
「A」、
「B」
)
これがJSLスクリプトの一部である場合は、関数をNew Columnステートメントに含める必要があります(正確な構文については、スクリプトのヘルプを確認してください)。
ベスト、
TSRe:条件式を使用して新しい列にデータを入力するこれが私が通常このタイプの問題を処理する方法です。Informat()関数は、文字列を日付の数値表現に変換します。これは、JMPのDateTime値と簡単に比較できます。
CT = Current Data Table();
CT << New Column( "Prog_", Character );
For Each Row( Prog_ = If( :Assign Month <= Informat( "06/15/2016", "mdy" ), "A", "B" ) );
そしてに追加するには@Thierry_S数式列を作成した場合は、For Each Row()を回避できます
CT = Current Data Table();
CT << New Column( "Prog_",
Character,
formula(
If( :Assign Month <= Informat( "06/15/2016", "mdy" ),
"A",
"B"
)
)
);