如果行列值等於任何數組的任何值,則... 這個正式的一般形式是什麼?當行的列值 = 數組中的任何值時,如何編寫 If 語句(或任何正確的函數)來評估?
例子:
如果(:ColToCheck == [這些值中的任何一個],則為 1,否則為 0)
回复:如果行列值等於任何數組的任何值,那麼...... 這個正式的一般形式是什麼?不直接……這就是我使用 Loc() 的原因。
回复:如果行列值等於任何數組的任何值,那麼...... 這個正式的一般形式是什麼?謝謝你倆。@txnelson TX 昨晚讓我度過了難關。我只是將字符轉換為數字,它給出了想要的結果。
我認為@vince_faller的解決方案是我正在尋找的。 我用角色試過它,它起作用了
New Column( "Some Check 2",
Numeric,
"Continuous",
Format( "Best", 12 ),<BR /> Formula( !!Contains( {"TIM", "ALICE", "JANE", "UDY"}, :name ) )
),<BR /> // "UDY" is in there to verify contains will not return true for "JUDY"<BR />回复:如果行列值等於任何數組的任何值,那麼...... 這個正式的一般形式是什麼?Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << new Column("Some Check", FOrmula(
//only doing !! so it's negates the output of contains (which is WHERE it is in the list)
!!Contains({59, 63, 48, 70}, :height)
));回复:如果行列值等於任何數組的任何值,那麼...... 這個正式的一般形式是什麼?1. 矩陣只能包含數值。因此,需要將矩陣 z 指定為 List,而不是 Matrix
2. 我不知道“客戶”是什麼。
3.這是一個列公式,還是打開JSL代碼?
4. Loc 返回列表中找到測試值的位置的矩陣。因此,您需要判斷返回的行數是否超過 0 行,以確定是否已找到匹配項。
以下是一些可能對您有所幫助的腳本示例
Names Default To Here( 1 );
dt = Current Data Table();
// As a formula in a new column
dt << New Column( "is present",
formula(
z = {"customer1", "customer2", "customer3"};
If( N Rows( Loc( z, :Name( "Ship-To Customer" ) ) > 0 ),
1,
0
);
)
);
// In open JSL
z = {"customer1", "customer2", "customer3"};
For( i = 1, i <= N Rows( dt ), i++,
If( N Rows( Loc( z, :Name( "Ship-To Customer" )[i] ) ) > 0,
1,
0
);
);回复:如果行列值等於任何數組的任何值,那麼...... 這個正式的一般形式是什麼?謝謝。
我正在嘗試做這樣的事情。
#1 它需要一個數字。
#2 返回返回所有缺失值。我嘗試了數據類型表達式和數字,無法運行分佈以查看是否存在缺失值以外的值。
cust = ["customer1","customer2","customer3"];
If( Loc( As List( cust ), :Name( "Ship-To Customer" ) ),
1,
0
);
//更新 2019 年 4 月 26 日
原始帖子沒有定義cust,而是顯示
z = ["客戶 1","客戶 2","客戶 3"];
這就是為什麼 TXNelson 問什麼是“客戶”?
回复:如果行列值等於任何數組的任何值,那麼...... 這個正式的一般形式是什麼?使用 Loc() 函數檢查比較時列表中是否有任何值相同。使用矩陣執行此操作時,將矩陣轉換為列表。
z=[1,2,3,4];
loc(as list(z),2);