スクリプトでのJMPヘルプこんにちは、
他の列に基づいて列を更新しようとしています。 更新できない場合は、数式を使用して新しい列を作成することもできます。 しかし、私はそれをするためにメイジすることができません。 私のサンプルとソリューションのデータと画像をご覧ください。
だから、例えば、
"customer_id" = A、 "Site_B"が欠落していて、 "Data_set_ID" = 221または169または136 => "Site_B" = "Site_B"を "Data_set_ID" = 142に配置する場合
そして
別の同様の条件(最大4または5条件)
そして、すべての顧客(B、C、AA、ADなど)に対して同じことを繰り返します。
何か助けてください?
ありがとう。
スクリプティングRe:スクリプトでのJMPヘルプディスカッションリクエストで使用されている構文から、JSLの構文についての知識はありません。JSLに習熟するには、時間をかけてスクリプトガイドを読む必要があります。
以下は、Sample_Data_Solution.jpgの青と赤の擬似コードに基づいて、私が理解しているものを満たすために必要なJSLです。
names default to here(1);
dt=current data table();
for(i=1,i<=N Rows(dt),i++,
If(:Customer_ID[i] == "A",
if(IsMissing(:Site_B[i]) & (:Data_set_ID[i] == 44 | :Data_set_ID[i] == 87),
:Site_B[i] = :Site_B[ (dt << get rows where( :Data_set_ID == 142))[1]]
,
IsMissing(:Site_B[i]) & (:Data_set_ID[i] == 221 | :Data_set_ID[i] == 169 | :Data_set_ID[i] == 136),
:Site_B[i] = :Site_B[ (dt << get rows where( :Data_set_ID == 164))[1]]
)
,
:Customer_ID[i] == "B",
if(IsMissing(:Site_B[i]) & (:Data_set_ID[i] == 44 | :Data_set_ID[i] == 87),
:Site_B[i] = :Site_B[ (dt << get rows where( :Data_set_ID == 142))[1]]
,
IsMissing(:Site_B[i]) & (:Data_set_ID[i] == 221 | :Data_set_ID[i] == 169 | :Data_set_ID[i] == 136),
:Site_B[i] = :Site_B[ (dt << get rows where( :Data_set_ID == 164))[1]]
)
)
);
Re:スクリプトでのJMPヘルプこんにちはネルソン、
返信とコメントをありがとう。 JMPでたくさんのことを学ぶ必要があります。
ネストされた「Forループ」を探しています。 つまり、スクリプトでは、「Customer_ID」に別のループが必要です。 私のデータセットには、6000〜7000を超える顧客IDがあります。
ありがとう。
Re:スクリプトでのJMPヘルプこんにちは、
つまり、コードでは、ifステートメントの横にあるようにcustomer_idを手動で割り当てることはできません-
:Customer_ID [i] == "A"、
:Customer_ID [i] == "B"、
これは私にとって6000-7000の英数字変数になります。 お気に入り
:Customer_ID [i] == "9UHIW"、
:Customer_ID [i] == "7EIGO"など。
したがって、一意のCustomer_IDをそれぞれ識別し、それにスクリプトを実装する別のループが必要です。
ありがとう。
Re:スクリプトでのJMPヘルプこれにより、必要なものを解決するための足がかりが得られます。
names default to here(1);
dt=current data table();
summarize( dt, cusID = By(:Customer_ID) );
For( i = 1, i <= N Rows( dt ), i++,
currCustomer_ID = :Customer_ID[i];
For( k = 1, k <= N Items( cusID ), k++,
If( :Customer_ID[i] == cusID[k],
If(
Is Missing( :Site_B[i] ) & (:Data_set_ID[i] == 44 | :Data_set_ID[i] == 87),
:Site_B[i] = :Site_B[(dt << get rows where( :Data_set_ID == 142 & :Customer_ID == currCustomer_ID ))[1]],
Is Missing( :Site_B[i] ) & (:Data_set_ID[i] == 221 | :Data_set_ID[i] == 169 | :Data_set_ID[i] == 136),
:Site_B[i] = :Site_B[(dt << get rows where( :Data_set_ID == 164 & :Customer_ID == currCustomer_ID ))[1]]
)
)
);
);