Come posso utilizzare JSL per modificare il valore nelle celle con valori mancanti su zero?Quando divido una tabella, mi ritrovo con celle in più colonne con valori mancanti.Voglio cambiare questi valori su 0.Il numero di righe e colonne divise varierà in base ai dati inseriti tramite una query SQL.Come posso scorrere queste colonne selezionate e apportare questa modifica dal valore mancante a 0.
Grazie
Ri: Come posso utilizzare JSL per modificare il valore nelle celle con valori mancanti su zero?D'accordo che in questo caso non è necessario ma è uno schema estremamente utile.Prendi un pezzo di JSL arbitrariamente complesso.In particolare quello in cui è difficile parametrizzare i componenti costitutivi.Metti tra parentesi le tue variabili (^var^) e incolla il tutto all'interno di un " modello Eval-Parse-Eval Insert".Problema risolto.
Ri: Come posso utilizzare JSL per modificare il valore nelle celle con valori mancanti su zero?Grazie, Thomasz.Funziona alla grande!!
Ri: Come posso utilizzare JSL per modificare il valore nelle celle con valori mancanti su zero?Puoi farlo manualmente in tre passaggi:
Seleziona le colonne
Scegli standardizza gli attributi e poi ricodifica.
Ricodificare tutti i . su 0.
Se vuoi farlo tramite jsl, puoi farlo in questo modo:
dt=current data table();
colnames = dt << get column names( numeric,string );
For( i = 1, i <= N Items( colnames ), i++,
column(dt,colnames[i])[dt<<GET rows="" where=""></GET>
Cordiali saluti, Tommaso
Ri: Come posso utilizzare JSL per modificare il valore nelle celle con valori mancanti su zero?Ecco la stessa idea di @cwillden ma senza dover usare Eval(Parse())
Names Default To Here( 1 );
dt = Current Data Table();
numericColumnNames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( numericColumnNames ), i++,
Try(
Column( dt, numericColumnNames[i] )[dt << get rows where(
Is Missing( (As Column( dt, numericColumnNames[i] )) )
)] = 0
)
);
Ri: Come posso utilizzare JSL per modificare il valore nelle celle con valori mancanti su zero?Prova qualcosa del genere:
dt = Current Data Table();
cols = dt << Get Selected Columns();
For( i = 1, i <= N Items( cols ), i++,
Eval( Parse( Eval Insert( "^cols[i]^[dt << Get Rows Where(Is Missing(^cols[i]^))] = 0" ) ) )
);
Ho finito per utilizzare Eval-Parse-Eval Insert perché alla funzione Is Missing non piaceva qualcosa come Is Missing(cols[i]) o Is Missing(Column(cols[i])).Usare l'inserto Eval-Parse-Eval sembra sempre un po' un trucco, ma ti darà ciò di cui hai bisogno.