Script de la función "Agrupar valores similares" en la plataforma Recode con JSLQuiero automatizar una función de recodificación en JSL pero no encuentro ninguna documentación sobre cómo lograrlo.
No hubo suerte en este foro, la función de búsqueda JMP o el índice de secuencias de comandos. La grabadora de flujo de trabajo y el archivo de registro solo obtienen el resultado final (tabla de bloqueo) y ocurre lo mismo con la función de guardar script en la tabla de datos.
Si es posible, transfiera algunas de esas configuraciones, pero no es importante en un primer paso:

Atentamente
Mauro
Automatización y secuencias de comandosRe: Script de la función "Agrupar valores similares" en la plataforma Recode con JSLCreo que es posible que tengas que crear tu propia agrupación usando Choose Closest(). Parece tener la MAYORÍA de las mismas opciones, por lo que tal vez JMP esté usando algo similar que no esté grabando (creo que hay muchas otras cosas que la recodificación tampoco está grabando).

Re: Script de la función "Agrupar valores similares" en la plataforma Recode con JSLHice un pequeño script usando Choose Closest() pero ahora me encuentro con un problema que solo se ejecuta una vez dentro de cualquier forma de bucle.
Esperar no ayudó y probé muchos escenarios. Siempre que ejecute Choose Closest() varias veces de una vez, devuelve la misma cadena independientemente de la entrada.
Fuera del circuito, funciona bien.
Agregué una configuración de prueba y generaré un ticket en el soporte de JMP.
Re: Script de la función "Agrupar valores similares" en la plataforma Recode con JSLSí, parece que Choose Closest está haciendo algunas cosas raras cuando está dentro de un bucle. Por ejemplo, esto no parecía funcionar sin usar Eval(EvalExpr()) ya que hacía coincidir abcabcb con abcabca si se ejecuta dentro de un bucle (si lo ejecuta manualmente hasta que falla, el resultado fue correcto).
A continuación se muestra mi intento de hacer algo como esto (creo que Elegir grupo más cercano o algo similar sería una buena idea para la Lista de deseos, que haría lo que está haciendo 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];
));