Rango ÚnicoQuiero calcular una nueva columna para clasificar una columna de forma única. A continuación se muestran los resultados de ejemplo que quiero lograr. Pero usar la fórmula de rango JSL no me ayuda a lograr lo que quiero. ¿Puede alguien por favor aconsejarme?
La fórmula que uso es Col Rank (: Etiqueta)
| Etiqueta | Rango | Lo que quiero |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,máx. | 1 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,máx. | 2 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],80376,máx. | 3 | 1 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,máx. | 4 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,máx. | 5 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],81999,máx. | 6 | 2 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,máx. | 7 | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,máx. | 8 | 3 |
| NVM_VMAX_PRG_EVENR2_DCMP[1],86491,máx. | 9 | 3 |
secuencias de comandosRe: Clasificación únicaGracias Jim y MS. ¡Funciona brillantemente!
Re: Clasificación únicaSi desea una fórmula de columna, esto debería funcionar. Independiente de la clasificación.
Local( {L = Associative Array( :Label ) << get keys}, Loc( L, :Label ) )
El mismo enfoque podría usarse en JSL sin una fórmula de columna.
dt = Current Data Table();
dt << New Column( "Rank Unique", continuous );
L = Associative Array( :Label ) << get keys;
For Each Row( :Rank Unique = Loc( L, :Label ) );
Re: Clasificación únicadt = current data table();
dt:Rank << delete formula;
Re: Clasificación únicaHola Jim,
Gracias por el consejo. Para la solución #2. ¿Cómo elimino la fórmula usando JSL en lugar de hacerlo manualmente?Re: Clasificación únicaHay un par de maneras de hacer esto... (que se me ocurra, tan temprano en la mañana)
- Utilice una tabla de resumen para crear los rangos
- Ejecutar tablas ==> Resumen
- Agrupe por su columna de etiqueta
- Suponiendo que la tabla de datos de salida está ordenada de menor a mayor, cree una nueva columna llamada "Clasificación" y déle la fórmula ........ Fila ()
- Ejecute Tables==>Update para volver a unir la tabla de resumen a la tabla original, haciendo coincidir la columna Etiqueta
- Crear una nueva columna de fórmula de clasificación
- Ordenar los datos por etiqueta
- Cree una nueva columna llamada Rango con la fórmula
If( Row() == 1,
count = 1,
If( :Label != Lag( :Label ),
count
++)
);
count;
- Asegúrese de ir a Información de la columna y elimine la columna después de crearla.La razón de esto es que dado que la fórmula se basa en el orden de los datos y la integridad de los datos, cualquier cambio en los datos (clasificación, etc.) volverá a ejecutar la fórmula y posiblemente cambiará las clasificaciones.