Scriptez la fonction "Grouper les valeurs similaires" dans la plateforme Recode avec JSLJe souhaite automatiser une fonction de recodage en JSL mais je n'ai trouvé aucune documentation sur la façon d'y parvenir.
Pas de chance dans ce forum, la fonction de recherche JMP ou l'index des scripts. L'enregistreur de flux de travail et le fichier journal n'obtiennent que le résultat final (table de verrouillage) et c'est la même chose avec la fonction de sauvegarde du script dans la table de données.
Si possible, transmettez certains de ces paramètres, mais ce n'est pas important dans un premier temps :

Cordialement
Mauro
Automatisation et scriptsRe : Scripter la fonction "Grouper les valeurs similaires" dans la plateforme Recode avec JSLJe pense que vous devrez peut-être créer votre propre regroupement en utilisant Choose Closest(). Il semble avoir la PLUPART des mêmes options, alors peut-être que JMP utilise quelque chose de similaire qu'il n'enregistre pas (je pense qu'il y a beaucoup d'autres choses que le recode n'enregistre pas non plus).

Re : Scripter la fonction "Grouper les valeurs similaires" dans la plateforme Recode avec JSLJ'ai créé un petit script en utilisant Choose Closest() mais je rencontre maintenant un problème : il ne s'exécute qu'une seule fois dans n'importe quelle forme de boucle.
Attendre n'a pas aidé et j'ai essayé beaucoup de scénarios. Tant que j'exécute Choose Closest() plusieurs fois en un seul coup d'œil, cela renvoie la même chaîne quelle que soit l'entrée.
En dehors de la boucle, cela fonctionne bien.
J'ai ajouté une configuration de test et je créerai un ticket auprès du support JMP.
Re : Scripter la fonction "Grouper les valeurs similaires" dans la plateforme Recode avec JSLOuais, on dirait que Choose Closest fait des choses étranges lorsqu'il est dans une boucle. Par exemple, cela ne semblait pas fonctionner sans utiliser Eval(EvalExpr()) car il correspondait à abcabcb avec abcabca s'il était exécuté dans une boucle (si vous l'exécutiez manuellement jusqu'à l'échec, le résultat était correct).
Vous trouverez ci-dessous ma tentative sur quelque chose comme ceci (je pense que le groupe Choisir le plus proche ou quelque chose de similaire serait une bonne idée pour la liste de souhaits qui ferait ce que fait Recode)
names default to here(1);
dt = Open("$DOWNLOADS/Test_Table.jmp");
dt << new column("Ones", Numeric, Continuous, Set Each Value(1)); // summarize...
Summarize(dt, groups = By(:Column 1), counts = Sum(:Ones));
aa_matches = Associative Array(groups);
groups = groups[Rank(Ranking(counts))];
aa_matches[Reverse(groups)[1]] = Reverse(groups)[1]; // highest is group with itself
str_a = Remove From(groups, 1)[1];
While(N Items(groups) > 0,
Eval(EvalExpr(
str_b = Choose Closest(Expr(str_a), Expr(groups), Ignore Case(1), Ignore Whitespace(1), Ignore Nonprintable(1), Max Edit Count(2), Max Edit Ratio(0.25));
));
aa_matches[str_a] = str_b;
str_a = Remove From(groups, 1)[1];
);
dt << New Column("Recoded", Character, Nominal, Set Each Value(
aa_matches[:Column 1];
));