Cómo contar las filas por el valor de otra columnaHe estado usando JMP 12.0 durante algún tiempo y lo encuentro fantástico. Sin embargo, hay un problema en el que agradecería algo de ayuda, ya que parezco ser la única persona que usa JMP mientras que el resto usa SPSS.
Me gustaría obtener alguna información sobre lo siguiente:
C1 C2
Título Orden calculado
r1 cirujano 1
r2 cirujano 2
r3 cirujano 3
r4 residente 1
r5 residente 2
r6 pasante 1
pasante r7 2
etc.
Un amigo y colega mío usa SPSS y en ese programa escribió la siguiente fórmula que calcula el valor en C2 en su SPSS.
Hazlo si Título>LAG(Título).
Orden de cálculo = 1.
Terminara si.
Hágalo si Título = LAG (Título).
Calcular orden=LAG(Orden)+1.
Terminara si.
Ejecutar.
¿Cómo puedo escribir una fórmula correspondiente en JMP?
Muy agradecido si alguien pudiera explicar cómo.
LarsBirger
Re: ¿Cómo puedo hacer que JMP calcule un valor que refleje el orden de un parámetro?Gracias por las respuestas. Echaré un vistazo a esto. Un colega me ayudó con su programa estadístico (SPSS), pero definitivamente lo investigaré ya que uso JMP continuamente para mi investigación.
Sinceramente tuyo
Lars
Re: ¿Cómo puedo hacer que JMP calcule un valor que refleje el orden de un parámetro?Si está utilizando JMP 13, la función Col Rank() admite el desempate por número de fila, para que obtenga el efecto que está buscando.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "Rank within age",
Formula( Col Rank( 1, :age, <<TIE></TIE>
El primer argumento es el valor a clasificar, que suele ser otra columna, pero en este caso el valor clasificado no importa, así que utilicé la constante 1.
Re: ¿Cómo puedo hacer que JMP calcule un valor que refleje el orden de un parámetro?Hola Lars!
Aquí hay una secuencia de comandos que creo que hace lo que usted solicita en el conjunto de datos de Big Class en los Datos de muestra:
Names Default To Here( 1 );
BC_dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
BCSorted_dt = BC_dt << Sort( By( :age, :sex, :height, :weight ), output table name("Big Class Sorted"));
BCSorted_dt << New Column( "Computed Order",
Numeric,
Ordinal,
Formula( If(row()==1 | :age!=Lag(:age, 1), 1, Lag(:Computed Order, 1)+1) ),
EvalFormula);
Si todo lo que necesita es la fórmula, puede copiar el argumento Fórmula() en el script y pegarlo en el editor de fórmulas... solo recuerde ordenar los datos adecuadamente primero.
¡Buena suerte!