再:リストを複数の列に適用するこんにちは @sagrim 、
私はあなたが正しい軌道に乗っていると思います。「If」ステートメントのわずかなミスコーディングです。あなたの特定の例では、次のようにすべきだと思います:
new column ("Org-Approved Certification", Numeric, Nominal) << Formula(
If( Contains (mylist, :"ONE_LICENSE_CODE") | If( Contains (mylist, :"TWO_LICENSE_CODE")), 1, 0
)
); したがって、一般的には、次のようになります。
If(A | B | C、then、else)、しかしもっとあなたはそれをもっと持っていました:If(A、then、else | B、then、else)、これはIf関数を呼び出す正しい方法ではありません。
模擬データテーブルを作成しました。これは、作業中の構造に似ていると思われます。添付ファイルを参照してください。また、組織が承認した認証に式を適用する次のスクリプトを作成しました。私はこれがあなたが意図したとおりに働くと信じています-私はそう願っています!
names default to here(1);
mylist={"cert1", "cert2", "cert3","cert4", "cert5", "cert6"};
dt=current data table();
dt:Name("Org-App Cert")<<FORMULA></FORMULA>お役に立てれば!、
DS
リストを複数の列に適用する「mylist」として保存されている認定略語の長いリストがあります。 私は単に、各スタッフが頭字語がyes / noのリストにある証明書を持っているかどうかを表すバイナリ変数を作成することに興味があります。リストを1つの列に適用すると、コードはうまく機能します。
New Column( "Org-Approved Certification", Numeric, Nominal ) << Formula(
If( Contains( mylist, :"ONE_LICENSE_CODE" ),
1,
0
)
);
ただし、リストを一度に複数の列に適用する場合、コードはエラーなしで実行されますが、正しい値は生成されません。 私は頭字語を格納している可能性のあるいずれかの10列を持っているので、リストの頭字語について10列すべてをチェックする必要があります。
New Column( "Org-Approved Certification", Numeric, Nominal ) << Formula(
If(
Contains( mylist, :"ONE_LICENSE_CODE" ), 1,
0 | If( Contains( mylist, :"TWO_LICENSE_CODE" )
), 1,
0
)
);
リストを適用するときに複数の列を一度に指す方法はありますか?
ありがとうございました!
再:リストを複数の列に適用するこれは完全に機能します。私が間違っていた場所を説明するために時間を割いていただきありがとうございます。これは私を大いに助けました:
「If(A | B | C、then、else)、しかし、より多くの場合:If(A、then、else | B、then、else)。これは、If関数を呼び出す正しい方法ではありません。」
再:リストを複数の列に適用するすごい!喜んで機能し、助けてくれました。