Sintaxis: ¿Cómo creo una columna de índice por ID?Hola comunidad JMP,
Estoy tratando de crear una columna que indexe filas por una columna de ID.
En otro lenguaje de secuencias de comandos, esto se logra con las siguientes líneas.
Por ID: gen IDIndex = _n
Por ID: gen IDCount = _N
Puedo hacer lo siguiente, pero indexo y cuento toda la tabla
New Column( "IDIndex", formula( Row() ) );
New Column( "IDCount", formula( N Row() ) );
¡Un consejo sobre esto sería genial!
Sinceramente,
| IDENTIFICACIÓN |
índiceID |
IDCuenta |
|---|
| 444 |
1 |
4 |
| 444 |
2 |
4 |
| 444 |
3 |
4 |
| 444 |
4 |
4 |
| 333 |
1 |
3 |
| 333 |
2 |
3 |
| 333 |
3 |
3 |
Re: Sintaxis: ¿Cómo creo una columna de índice por ID?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Gracias MS, el comando que compartió funciona independientemente de la clasificación.
¡Qué tengas un lindo día!
Re: Sintaxis: ¿Cómo creo una columna de índice por ID?Creo que la siguiente fórmula funcionará para IDIndex independientemente de la clasificación inicial de la columna ID:
Suma( :ID[Índice( 1, Fila() )] == :ID )
Re: Sintaxis: ¿Cómo creo una columna de índice por ID?Jeff tiene razón y solo agregaré que la fórmula para IDIndex depende de la clasificación anterior.
Si es necesario volver a ordenar la tabla más adelante, deberá suprimir la evaluación o eliminarla.
columna (dt, "IDIndex") << suprimir eval (verdadero);
o:
columna (dt, "IDIndex") << eliminar fórmula;
para producir la columna IDCount sin ordenar, puede usar la opción de resumen de tabla:
dt << Resumen (Grupo ( :ID );
Ron
Re: Sintaxis: ¿Cómo creo una columna de índice por ID?¡Genial, funcionó perfectamente!
Gracias por la pronta respuesta.
Qué tengas un lindo día,
Mate
Re: Sintaxis: ¿Cómo creo una columna de índice por ID?En su fórmula, debe verificar el valor de ID para ver si ha cambiado desde la fila anterior y restablecer su índice si es así.
Prueba esta fórmula:
If(:ID != Lag(:ID, 1) | Fila() == 1, 1, Lag(:IDIndex, 1) + 1)
Su columna ID Count ha usado IDIndex para obtener su valor:
Col Máximo( :IDIndex, :ID )
El segundo argumento de la función Col Maximum es la variable By.
¡Espero que eso ayude!
-Jeff