Guida di JMP nello scriptCiao,
Sto cercando di aggiornare una colonna in base ad altre colonne. Se l'aggiornamento non è possibile, sono felice di creare anche una nuova colonna utilizzando la formula. Ma non sono in grado di mago di farlo. Visualizza i dati e le immagini del mio campione e della soluzione.
Quindi diciamo, per a
"customer_id" = A, se "Site_B" manca e "Data_set_ID" = 221 o 169 o 136 => Inserisci "Site_B" = "Site_B" in "Data_set_ID" = 142
E
Un'altra condizione simile (fino a 4 o 5 condizioni)
E ripeti lo stesso per tutti i clienti: B, C, AA, AD ecc.
Qualche aiuto per favore?
Grazie.
ScriptingRi: aiuto JMP nello scriptDalla sintassi utilizzata nella richiesta di discussione, non si è istruiti sulla sintassi di JSL.È necessario dedicare del tempo alla lettura della Guida allo scripting per acquisire familiarità con JSL.
Di seguito è riportato il JSL richiesto per soddisfare ciò che intendo come ciò di cui hai bisogno, basato sullo pseudo codice blu e rosso in Sample_Data_Solution.jpg
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]]
)
)
);
Ri: aiuto JMP nello scriptCiao Nelson,
Grazie per la risposta e il commento. Ho bisogno di imparare molte cose in JMP.
Sto cercando un "For Loop" annidato. Voglio dire nel tuo script ho bisogno di un altro ciclo su "Customer_ID". Nel mio set di dati ho più di 6000-7000 ID cliente.
Grazie.
Ri: aiuto JMP nello scriptCiao,
Voglio dire nel tuo codice non posso assegnare customer_id manualmente come, a fianco dell'istruzione if -
: Customer_ID [i] == "A",
: Customer_ID [i] == "B",
Questo sarebbe 6000-7000 variabile alfanumerica per me. Piace
: Customer_ID [i] == "9UHIW",
: Customer_ID [i] == "7EIGO", ecc.
quindi ho bisogno di un altro ciclo che identifichi ogni Customer_ID univoco e quindi implementi il tuo script su di esso.
Grazie.
Ri: aiuto JMP nello scriptQuesto dovrebbe darti un vantaggio per risolvere ciò di cui hai bisogno
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]]
)
)
);
);