Comment utiliser JSL pour modifier la valeur des cellules avec des valeurs manquantes à zéro ?Lors du fractionnement d'un tableau, je me retrouve avec des cellules dans plusieurs colonnes avec des valeurs manquantes.Je veux changer ces valeurs à 0.Le nombre de lignes et de colonnes divisées varie en fonction des données extraites via une requête SQL.Comment puis-je parcourir ces colonnes sélectionnées et passer de la valeur manquante à 0.
Merci
Re : Comment utiliser JSL pour changer la valeur des cellules avec des valeurs manquantes à zéro ?D'accord, dans ce cas, ce n'est pas nécessaire, mais c'est un modèle extrêmement utile.Prenez un morceau de JSL arbitrairement complexe.Particulièrement celui où il est difficile de paramétrer les composants constitutifs.Encadrez vos variables avec des carets (^var^) et collez le tout dans un " Modèle "Eval-Parse-Eval Insert".Problème résolu.
Re : Comment utiliser JSL pour changer la valeur des cellules avec des valeurs manquantes à zéro ?Merci, Thomas.Fonctionne très bien!!
Re : Comment utiliser JSL pour changer la valeur des cellules avec des valeurs manquantes à zéro ?Vous pouvez le faire manuellement en trois étapes :
Sélectionnez les colonnes
Choisissez de normaliser les attributs, puis recodez.
Recodez tous les . à 0.
Si vous voulez le faire en jsl, vous pouvez le faire comme ceci :
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>
Cordialement, Thomas
Re : Comment utiliser JSL pour changer la valeur des cellules avec des valeurs manquantes à zéro ?Voici la même idée que @cwillden mais sans avoir à utiliser 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
)
);
Re : Comment utiliser JSL pour changer la valeur des cellules avec des valeurs manquantes à zéro ?Essayez quelque chose comme ceci :
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" ) ) )
);
J'ai fini par utiliser l'insertion Eval-Parse-Eval parce que la fonction Is Missing n'aimait pas quelque chose comme Is Missing(cols[i]) ou Is Missing(Column(cols[i])).Utiliser l'insert Eval-Parse-Eval ressemble toujours un peu à un hack, mais cela vous donnera ce dont vous avez besoin.