nueva columna: clasificación únicaHola,
Quiero crear una columna con valores 1,2,3 - N para etiquetar valores únicos en otra columna.
En la comunidad hay varios posts similares.
Cómo crear una nueva columna con un número numérico basada en la agrupación única de la columna A
Rango único
con una variedad de soluciones.
Pero la única solución interesante que no encontré hasta ahora.
Debería ser
- dinámico (reacciona ante los cambios en la tabla) -> sin tablas/Resumen, sin etiqueta para codificar
- independiente del tipo de columna (al menos: Carácter + Numérico) -> sin etiqueta para codificar
- funcional incluso para tablas no ordenadas -> sin demora
- rápido -> sin matriz asociativa
Mejor: una función corta como (*)
rank unique(:col1)
o una opción de una función (**)
rank(:col1, << unique(1))
encontré la opción
rank(:col1, << tie(mode))
pero no encontré un modo lo que produce el número 1, 2,3... norte
Pensé que se puede llegar allí usando rango dos veces:
New Column( "step1",Formula( Col Rank( :sex, <<TIE></TIE>
Pero el paso 2 conoce algunos secretos sobre la columna paso 1 que el usuario no puede ver:

Que funciona:
New Column( "Rank[sex]",
Formula(
If(row() == 1,summarize(values= by(:sex)));
Contains( values, :sex )
)
);
Todavía estoy buscando (*) o (**) y espero poder encontrarlo en el menú contextual del botón derecho de la columna Nueva fórmula. ¿Pero donde?
Combinación y limpieza de datosRe: nueva columna: clasificación únicaNo existe una única función Col que pueda realizar esta tarea. Puede hacer esto con funciones Col, pero lo más probable es que requiera pocas de ellas y sea más lento que usar Resumir (o Matriz asociativa). Agregue una clasificación densa a las funciones Ranking Tie y Col Rank
Re: nueva columna: clasificación únicaUna lástima con las entradas de la lista de deseos, hay muy buenas, pero pasan desapercibidas.
¿Cómo pude haberme perdido este...?
-> Felicitaciones de mi parte.
Re: nueva columna: clasificación únicaLa búsqueda no es la mejor en la comunidad JMP, por lo que debería haber agregado más "palabras clave" al título, como la clasificación única. Este es un problema al que me enfrento de vez en cuando en el trabajo, pero afortunadamente (al menos no todavía...) la velocidad de cálculo no es un problema o no necesito una fórmula dinámica.
Re: nueva columna: clasificación únicabúsqueda: Gracias por tu publicación sobre nosotros en la comunidad.
Desde entonces, sigo tu sugerencia y siempre uso la búsqueda de Google; incluso agregué un acceso directo a mi navegador.
En el pasado, un buen enfoque era enviar una publicación a la comunidad, luego abrirla y mirar las sugerencias de "publicaciones relacionadas" a la derecha, pero desde la actualización del diseño de la comunidad ya no puedo encontrar esta función.
Una buena aplicación para Rank Unique:
En Graph Builder, cuando coloco obleas en la zona de colocación del Grupo X y variantes en la zona de colocación del Grupo Y, si no es DOE y cada oblea tiene solo una variante, obtengo un gráfico muy escaso con mucha área blanca.
Entonces es genial tener el rango 1,2,3... para la zona de colocación del Grupo X y la información de la oblea simplemente a través de la etiqueta Hover.
Realmente no es esencial tener la versión dinámica, pero tengo una mejor sensación si los valores se ajustan automáticamente después de alguna actualización de la tabla, de modo que se garantice que no haya valores antiguos.
Las matrices asociativas ya se vuelven muy lentas para una longitud de datos decente. Realmente peligroso si no guardaste tus datos...
Re: nueva columna: clasificación únicaHm, sigue igual en Jmp 18:

Siguiendo una idea de @jthi de Agregar contador para casos únicos en grupos :
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "rank_unique (sex) by age",
Formula(
Col Minimum(
Col Rank( If( Row() == Col Min( Row(), :age, :sex ), 1 ), :age ),
:age,
:sex
)
)
)
- solo un valor para el primero de cada sexo X edad
- generar rango
- use Col Mínimo para transmitir los valores a las otras filas