Enregistrement en JSL tout en conservant la plupart des valeurs initialesSalut,
J'ai une colonne avec des probabilités. La plupart du temps, ce ne sont que des nombres compris entre 0 et 1. Cependant, pour une probabilité de 100 %, j'ai obtenu 100 au lieu de 1. Mon idée pour résoudre le problème était simplement d'utiliser la fonction de recodage, puis de remplacer toutes les occurrences de "100" par "1". ".
Le code extrait que j'utilise est :
dt << Recode Column (
:"probability"n,
{IF( _rcNOW == 100, 1)},
Target Column (:"probability"n)
);Cela fonctionne en partie, le problème est que dans tous les cas où la probabilité est <100, la colonne mise à jour est vide. C'est parce que l'instruction IF ne sait pas quoi faire dans ce cas. Existe-t-il un moyen de savoir que dans ce cas, il doit simplement conserver la valeur d'origine ?
Automatisation et scriptMélange et nettoyage des donnéesRe : Enregistrement en JSL tout en conservant la plupart des valeurs initialesFaites-le de manière interactive dans JMP et JMP créera un script pour vous. Par exemple, j'ai une table

Et je souhaite changer 100 en 1


JMP crée un script pour vous

Et vous pouvez le nettoyer et le modifier un peu et le faire ressembler à ceci
dt << Recode Column(
dt:Prob,
{Map Value(_rcOrig, {100, 1}, Unmatched(_rcNow))},
Target Column(:Prob)
);
JMP a essentiellement créé ce script pour moi sans que j'écrive de JSL.
Re : Enregistrement en JSL tout en conservant la plupart des valeurs initialesMerci cela a parfaitement fonctionné ! (et cela semble évident avec le recul).
En effet, je pourrais le faire de manière interactive sans problème et je devrais peut-être l'exécuter sur différents fichiers, je préfère donc une solution de script.
Qu'entendez-vous par « Valeur de la carte » ? (Ou est-ce l'approche interactive ?)
Re : Enregistrement en JSL tout en conservant la plupart des valeurs initialesJe pense que vous pouvez utiliser _rcNOW dans votre instruction else
dt << Recode Column(
:"probability"n,
{If(_rcNOW == 100,
1
, _rcNOW
)},
Target Column(:"probability"n)
);
mais si vous souhaitez simplement changer 100 en 1, utiliser Map Value (l'opération de recodage la plus élémentaire) pourrait être plus facile. Je pense que vous pouvez simplement le faire de manière interactive à partir du menu Recode.