Cómo recodificar una columna con una fórmula en JSLTengo problemas para que mi script de recodificación se ejecute correctamente. Tengo una tabla de datos con una columna llamada DEPT que contiene un número que corresponde a un nombre de departamento específico. Lo que quiero hacer es crear una nueva columna llamada Nombre del departamento que tome los valores en DEPT y los convierta al nombre del departamento escrito en lugar de la versión numérica. Esta tabla es parte de un script más grande que ejecuto dos veces por semana con un año móvil de datos cada vez que se ejecuta, por lo que es posible que cada número/nombre de departamento no esté presente en una iteración determinada. A continuación se muestra lo que probé, pero solo logré transponer el valor de DEPT a Nombre de departamento o simplemente obtener una columna de Nombre de departamento en blanco. Cualquier ayuda sería muy apreciada.
FD << Current Data Table();
New Column("Dept Name", Character, Nominal, Formula(:DEPT));
:Dept Name << Delete Formula;
For Each Row(:Dept Name =
Match( :Dept Name,
"100", "Wet Production",
"200", "QA Lab",
"300", "Dry Component",
"400", "Finished Component",
"410", "Microsis",
"415", "Antimicrobial",
"425", "Finished Component Product",
"475", "Special Processing",
"490", "eSIS",
"500", "QC",
"600", "Labeling",
"700", "Sterilization",
"1000", "Shipping and Finished Product Labeling",
"1200", "Quarentine",
:Dept Name);
);
Re: Como recodificar una columna con una formula en JSL¡Eso funcionó perfectamente! ¡Gracias por la ayuda!
Re: Como recodificar una columna con una formula en JSLCreo que está en el camino correcto, pero su secuencia de comandos original confundía las columnas de datos originales y de destino. Prueba esta modificación:
FD = Current Data Table();
FD << New Column( "Dept Name", Character, Nominal );
For Each Row(
:Dept Name = Match( :Dept,
"100", "Wet Production",
"200", "QA Lab",
"300", "Dry Component",
"400", "Finished Component",
"410", "Microsis",
"415", "Antimicrobial",
"425", "Finished Component Product",
"475", "Special Processing",
"490", "eSIS",
"500", "QC",
"600", "Labeling",
"700", "Sterilization",
"1000", "Shipping and Finished Product Labeling",
"1200", "Quarentine"
);
);
Re: Como recodificar una columna con una formula en JSL¡Hola!
Estoy intentando algo similar aquí en JMP 16. La única diferencia, creo, es que tengo múltiples valores en cada uno de mis grupos. Esta es la fórmula que estoy intentando ahora:
FD = Current Data Table();
FD << New Column( "Dog Group", Character, Nominal );
For Each Row( Dog Group = Match( :Breed #, "6,10,18,20,24,27,30,31", "Toy", "8,9,15,17,21,28,36", "Work", "1,14,23,26,29,33", "Sport", "3,4,7,13,34,37,42", "Hound", "11,12,16,39", "Herder", "5,19,41", "Extra Fluff", "32,40", "Terrier", "2,25", "Doodle", "22", "Mixed", "35,38", "Other" ) );
También recodifiqué originalmente con una fórmula y esto funciona en mi tabla de datos actual, pero no puedo copiar/pegar la fórmula en una nueva tabla (incluso cuando me aseguro de que los nombres de las columnas sean los mismos).
¡Gracias por cualquier ayuda!
Re: Como recodificar una columna con una formula en JSLCreo que no puedes hacer una comparación así cuando usas Match, tendrías que escribir todos los valores por separado. Usaría la matriz asociativa o la tabla de datos para almacenar el número de raza y los grupos (también podría usar Match, pero creo que las otras opciones son mejores). Dependiendo de dónde obtenga esos valores, hay muchas formas diferentes de construirlos.
Re: Como recodificar una columna con una formula en JSLSi desea utilizar el partido paradigma tendría que estar estructurado como:
FD = Current Data Table();
FD << New Column( "Dog Group", Character, Nominal );
For Each Row(
Dog Group = Match( :Breed #,
"6", "Toy",
"10", "Toy",
"18", "Toy",
"20", "Toy",
"24", "Toy",
"27", "Toy",
"30", "Toy",
"31", "Toy",
"8", "Work",
"9", "Work",
"15", "Work",
"17", "Work",
"21", "Work",
"28", "Work",
"36", "Work",
"1", "Sport",
"14", "Sport",
"23", "Sport",
"26", "Sport",
"29", "Sport",
"33", "Sport"
)
);