Grabar en JSL manteniendo la mayoría de los valores inicialesHola,
Tengo una columna con probabilidades. En su mayoría, estos son solo números entre 0 y 1. Sin embargo, para una probabilidad del 100% obtuve 100 en lugar de 1. Mi idea para resolver el problema era simplemente usar la función de grabación y luego reemplazar todas las apariciones de "100" por "1". ".
El código recortado que estoy usando es:
dt << Recode Column (
:"probability"n,
{IF( _rcNOW == 100, 1)},
Target Column (:"probability"n)
);Esto funciona en parte, el problema es que en todos los casos en los que la probabilidad es <100, la columna actualizada está vacía. Esto se debe a que la declaración IF no sabe qué hacer en el caso. ¿Hay alguna manera de saber que, en ese caso, debería conservar el valor original?
Automatización y secuencias de comandosCombinación y limpieza de datosRe: Grabar en JSL manteniendo la mayoría de los valores inicialesHágalo de forma interactiva en JMP y JMP creará un script para usted. Por ejemplo tengo una mesa

Y deseo cambiar 100 a 1


JMP crea un script para usted

Y puedes limpiarlo y modificarlo un poco y hacer que se vea así.
dt << Recode Column(
dt:Prob,
{Map Value(_rcOrig, {100, 1}, Unmatched(_rcNow))},
Target Column(:Prob)
);
JMP básicamente creó este script para mí sin que yo escribiera ningún JSL.
Re: Grabar en JSL manteniendo la mayoría de los valores iniciales¡Gracias, funcionó perfectamente! (y parece obvio en retrospectiva).
De hecho, podría hacerlo de forma interactiva sin problemas y es posible que tenga que ejecutarlo en archivos diferentes, por lo que prefiero una solución de scripting.
¿Qué quieres decir con "valor del mapa"? (¿O es ese el enfoque interactivo?)
Re: Grabar en JSL manteniendo la mayoría de los valores inicialesCreo que puedes usar _rcNOW en tu declaración else
dt << Recode Column(
:"probability"n,
{If(_rcNOW == 100,
1
, _rcNOW
)},
Target Column(:"probability"n)
);
pero si solo desea cambiar 100 a 1, usar Map Value (la operación de recodificación más básica) podría ser más fácil. Creo que puedes hacer esto de forma interactiva desde el menú Recodificar.