Script de Recodificación ArbitrariaTengo una variable de carácter con un número desconocido de niveles. Los niveles tienen nombres de texto largos y me gustaría recodificarlos en algo más corto, como 1, 2, 3, etc.
Entiendo cómo usar Match para recodificar un conjunto de niveles dado a otros valores específicos, pero me gustaría preguntar cómo hacerlo si se desconoce el conjunto inicial. Es decir, para cada nuevo archivo de datos, la variable a recodificar puede tener un número diferente de entradas diferentes.
¡Gracias!
Re: Script de recodificación arbitrariaA-ha! Pensé que "dt =" era inusual. Resultó que lo resolví escribiendo "dt2 =". Probablemente un poco ineficiente pero funcionó. Desde entonces lo cambié a "dt <<" y también funciona muy bien.
¡Gracias de nuevo!
Re: Script de recodificación arbitrariaoops
la declaración Nueva Columna debería ser
dt << New Column(.................
Re: Script de recodificación arbitrariaPS., Parece que de alguna manera se le está asignando a esa nueva columna. La tabla de datos original ya no está referenciada por dt. ¿Está bien?
Re: Script de recodificación arbitrariaParece que hablé pronto ... ese código está creando la nueva variable deseada, pero ahora todo mi código después de eso no funciona. En particular, traté de mover la nueva variable, luego excluir algunas filas. ¿Mi movimiento y exclusión funcionaron bien antes, pero ahora la nueva variable se excluye y se oculta?
¿Hay algo que deba ser reajustado o apagado? (Por cierto, estoy usando la versión 12)
¡Gracias!
Re: Script de recodificación arbitrariaEso funcionó muy bien! ¡Muchas gracias!
Re: Script de recodificación arbitrariaAquí hay una pequeña parte de JSL que da un ejemplo de cómo crear un valor numérico a partir de los valores de caracteres encontrados en una columna
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Animals.jmp" );
dt = New Column( "Animal Category",
formula(
If( Row() == 1,
Summarize( bygroup = by( :species ) )
);
Loc( bygroup, :species )[1];
)
);