使用條件公式填充新列我試圖根據(:Assign Month)的值用“ A”或“ B”填充新列(:Prog_)。:Assign Month是一個連續的m / d / y數字變量。
下面的腳本導致填充:Prog_列,但不填充我嘗試填充:Prog_列的值。
如果:Assign Month <=“ 06/15/2016”,我想用“ A”填充:Prog_列行
如果:Assign Month> 2016/6/15,我想用“ B”填充:Prog_列行。
到目前為止,這是我嘗試使用的腳本(未成功):
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”));
腳本編寫回复:使用條件公式填充新列你好
首先,確保:Assign Month列的格式設置為數字,連續日期格式;我猜測您在公式中使用引號表示當前情況並非如此。
其次,您無需告訴JMP查看每一行,默認情況下,它會執行此操作。
第三,:Prog_列中的公式應為:
If(:第1列<=日期MDY(16,05,2016),
“一種”,
“ B”
)
值得注意的是,如果這是JSL腳本的一部分,則該函數應包含在New Column語句中(檢查Scripting幫助中的確切語法。
最好,
TS回复:使用條件公式填充新列這是我通常處理此類問題的方式。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"
)
)
);
回复:使用條件公式填充新列您的原始變量是數字,代表JMP日期和時間值。 無需將其轉換為格式化的字符串。 您可以直接將時間閾值指定為常數。
CT << New Column( "Prog_", Character );
For Each Row( :Prog_ = If( :Assign Month <= 15Jun2016, "A", "B" ) );