Incremento por niveles de columna de caracteres (scripting)Tal vez no vuelva a ver el bosque antes que los árboles; Solo quiero aplicar algún incremento numérico para cada nivel distinto de una columna de caracteres.
Los mismos niveles obtienen el mismo incremento, los diferentes niveles obtienen números diferentes.
Supuesto: los datos se ordenan por "Character_Column_Have". "Numeric_Increment_Want" debería comenzar con 1.
Character_Column_Have Numeric_Increment_Want
AAA 1
AAA 1
ABC 2
BBB 3
CCD 4
EEE 5
EEE 5 ...
El único resultado que obtuve hasta ahora fue bloquear repetidamente mi JMP usando "col ** bleep ** rank".
JMP y yo podríamos hacerlo mejor, ¿verdad?
Gracias por cada puntero!
Novato
Re: Incremento por niveles de columna de caracteres (scripting)Aquí está la fórmula que usaría
If( Row() == 1,
Summarize( groups = by( :Character_Column_Have ) )
);
Contains( groups, :Character_Column_Have );
También hay otros métodos.
- Use Recode para crear una nueva columna, cambiando los valores encontrados para los nuevos valores numéricos deseados
- Use la Plataforma de resumen con Character_Column_Have como columna del Grupo para crear una nueva tabla de datos con una fila por valor de Character_Column_Have. Luego cree una nueva columna que tenga una fórmula de Row (). Finalmente, use la plataforma de actualización para unir la tabla de resumen con la tabla original.
Re: Incremento por niveles de columna de caracteres (scripting)Me gusta la respuesta de Jim. También podría usar una fórmula simple:
If(
Row() == 1, 1,
:Have == Lag( :Have ), Lag( :Want ),
Lag( :Want ) + 1
)
O el guión equivalente:
For Each Row( If( Row() == 1, 1, :Have == Lag( :Have ), Lag( :Want ), Lag( :Want ) + 1 ) );
Re: Incremento por niveles de columna de caracteres (scripting)Intenté todos tus enfoques, pero parece que no puedo hacer que funcionen.
Un enfoque me desconcierta conceptualmente. Aborda dos columnas de entrada, mientras que solo la columna de caracteres está disponible para la entrada.
¿Podría demostrar un enfoque en el conjunto de datos JMP "Dolphins" por favor (extracto a continuación)?
Viaje mañana 6
Feed Morning 28
... Tarde de viaje 13
Feed Evening 56
Social Evening 10
Para los niveles de "Delfines" Mañana, Mediodía, Tarde, Noche Esperaría los incrementos 1,2,3 resp. 4 (sujeto a orden de clasificación)
Re: Incremento por niveles de columna de caracteres (scripting)Aquí está la fórmula para la columna Numeric_Increment_Want
If( Row() == 1,
Summarize( myGroups = by( :Period ) )
);
Contains( myGroups, :Period );
Tuve que cambiar el código anterior porque la referencia a "Grupos" en el código anterior entra en conflicto con la tabla de datos de Dolphins que tiene una columna llamada Grupos. Entonces cambié el nombre de la variable a myGroups.

Se adjunta la tabla de datos con la nueva columna agregada
Re: Incremento por niveles de columna de caracteres (scripting) New Column( "Increment",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1,
Summarize( myGroups = by( :Period ) )
);
Contains( myGroups, :Period );
)
);
No puedo explicar por qué ahora funciona. También me ajusté para "Grupos". Weired De todos modos, lo resolví así y funciona a las mil maravillas. Jim, muchas gracias. ¡De nuevo!