条件式を使用して新しい列を作成する(: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 << 新しい列("Prog_", 文字);
各行について(Prog_ = if( Char(Format(:Assign Month,"m/d/y")) <= "06/15/2016", "A", "B" ));
CT << 新しい列("Prog_", 文字);
各行に対して(Prog_ = if( :Assign Month <= 06/15/2016, "A", "B" ));
高度な統計モデリング自動化とスクリプト作成消費者および市場調査品質およびプロセスエンジニアリング結果の共有と伝達Re: 条件式を使用して新しい列を作成するこのスクリプトにご協力いただきありがとうございます。
ダン F.
Re: 条件式を使用して新しい列を作成するこんにちは、Mark - このスクリプトにご協力いただきありがとうございます。
ダン F.
Re: 条件式を使用して新しい列を作成する元の変数は数値であり、JMP の日付と時刻の値を表します。 フォーマットされた文字列に変換する必要はありません。 時間のしきい値を定数として直接指定できます。
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );
Re: 条件式を使用して新しい列を作成するこの種の問題に私が通常どのように対処するかは次のとおりです。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" ) );
そして追加するのは@ティエリー_S数式列を作成した場合は、For Each Row() を回避できます。
CT = Current Data Table();
CT << New Column( "Prog_",
Character,
formula(
If( :Assign Month <= Informat( "06/15/2016", "mdy" ),
"A",
"B"
)
)
);
Re: 条件式を使用して新しい列を作成するこんにちは、
まず、:Assign Month 列が数値の連続日付形式としてフォーマットされていることを確認します。式で引用符を使用していることから、現時点ではそうではないことが示されていると思います。
次に、JMP に各行を確認するように指示する必要はなく、デフォルトで実行されます。
第三に、:Prog_ 列の式は次のようになります。
If( :Column 1 <= Date MDY( 16, 05, 2016 ),
"A",
"B"
)
これが JSL スクリプトの一部である場合、関数は New Column ステートメントに含める必要があることに注意してください (正確な構文については、スクリプトのヘルプを確認してください)。
最高、
TS