行の列の値が任意の配列の任意の値と等しい場合... この形式の一般的な形式は何ですか?行の列の値 = 配列内の任意の値の場合に評価される If ステートメント (または適切な関数が何であれ) を作成するにはどうすればよいですか?
例:
If( :ColToCheck == [これらの値のいずれか] の場合は 1、そうでない場合は 0 )
Re: 行の列の値が任意の配列の任意の値と等しい場合... この形式の一般的な形式は何ですか?直接ではありません.......それが私が Loc() を使用する理由です。
Re: 行の列の値が任意の配列の任意の値と等しい場合... この形式の一般的な形式は何ですか?あなたがた両方に感謝します。@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 />Re: 行の列の値が任意の配列の任意の値と等しい場合... この形式の一般的な形式は何ですか?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)
));Re: 行の列の値が任意の配列の任意の値と等しい場合... この形式の一般的な形式は何ですか?1. 行列には数値のみを含めることができます。したがって、行列 z は行列ではなくリストとして指定する必要があります
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
);
);Re: 行の列の値が任意の配列の任意の値と等しい場合... この形式の一般的な形式は何ですか?ありがとう。
私はこのようなことをしようとしています。
#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 が「カスト」とは何かを尋ねているのはそのためです。
Re: 行の列の値が任意の配列の任意の値と等しい場合... この形式の一般的な形式は何ですか?Loc() 関数を使用して、比較したときにリスト内で同じ値があるかどうかを確認します。これを行列で行う場合は、行列をリストに変換します。
z=[1,2,3,4];
loc(as list(z),2);