encontrar valores y categorizarHola,
Tengo el problema que necesito para categorizar algunos datos. La selección de los valores a categorizar sería mucho más fácil si hubiera un proceso automatizado. El problema es tal: tabla con 3 columnas (1 categoría, 2 mediciones de profundidad, 3 puntos de datos).
1) Me gustaría obtener los que están por debajo de 0,5 (vea la columna 2 del archivo de ejemplo) para cada lago respectivamente. Esto significa que, 0,5 no debe ser incluido en la evaluación para la selección.
2) Además, me gustaría ordenar los valores encontrados en la columna 2 después de los que tienen la mayoría de los puntos de datos (N, columna 3) seleccionando los tres valores más profundos encontrados que contienen la mayoría de los datos, respectivamente para cada nombre de la columna 1.
3) Para categorizarlos, me gustaría crear una nueva columna y agregar un 1/2/3 para aquellos con la mayoría de los datos encontrados a los que tienen menos datos de los tres. Si dos profundidades encontradas son iguales en número de puntos de datos, la más profunda debe categorizarse como 1 o 2.
Vea el archivo de ejemplo para una mejor comprensión :-).
Gracias de antemano por cualquier solución, si eso es posible con jsl.
Re: encontrar valores y categorizarHola @Pacco ,
¿Estás usando JMP 12 (o anterior) por casualidad? Col Rank () cambió en JMP 13 para permitir los argumentos adicionales que Xan está usando.
De los documentos:
JMP 12:
Col Rank(column)
JMP 13:
Col Rank(column, <BYVAR>, <<TIE></TIE></BYVAR>
Re: encontrar valores y categorizarCuando ejecuto el script y luego hago un subconjunto de las filas seleccionadas con
dt << Subset( Copy formula( 0 ), Selected Rows( 1 ), Selected columns only( 0 ) )
yo obtengo
Todas las columnas están clasificadas, pero dentro de valores únicos de Stationsnamn e isBelow05. Eso está controlado por el segundo y tercer argumento a Col Rank (). Si desea que las estaciones se clasifiquen juntas, la eliminará por variable de los argumentos Col Rank ().
Re: encontrar valores y categorizar¿Puedo preguntar cómo se ve el resultado? Mina clasifica toda la columna. Sin embargo, estoy buscando clasificar cada sección (cada lote con el mismo nombre, vea la columna Stationsnamn).
Re: encontrar valores y categorizarGracias por las ideas, la selección y eliminación de la "supresión de evaluación" ayudó. Sin embargo, la espera 5 no cambió nada!

Re: encontrar valores y categorizarNo estoy seguro de lo que está causando su problema. Cuando abro la tabla de datos que proporcionó en su última respuesta, veo su problema. Pude corregir el problema haciendo clic con el botón derecho en el encabezado de la columna para Rango y seleccionando Información de la columna. Se abre la ventana de información de la columna. Seleccione "Suprimir Eval" como se muestra a continuación, y luego haga clic en el botón "Aplicar". Desactive la opción "Suprimir Eval" y luego haga clic en el botón "Aplicar" nuevamente, y vea si corrigió los valores en la columna

La otra cosa que me gustaría que pruebes es eliminar las columnas "isbelow05" y "rank", y ejecutar el siguiente script.
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
wait(.5);
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
Si funciona, lo que puede ser el problema es que su fórmula "isbelow05" no se completa antes de que se genere la columna "rango", y está causando problemas. los
wait(.5);
le está dando tiempo para completar la creación de la columna "isbelow05"
Re: encontrar valores y categorizarMhh, eso es extraño. Acabo de descargar el archivo de muestra desde aquí nuevamente (la diferencia fue que hice una selección con una columna adicional), sin embargo, incluso el archivo de muestra que cargué me muestra el mismo error que publiqué antes. Sin embargo, ahora marcaba valores de superficie con uno en la columna inferior a 0,5. (ver archivo adjunto)
También podría simplificar la pregunta. Luego, los valores solo deben seleccionarse y clasificarse de acuerdo con su clasificación en los números más altos para cada sección de nombre de lago.
Re: encontrar valores y categorizarEl script que Xan incluyó funciona muy bien con los datos de muestra que adjuntó. ¿Qué diferencia hay entre sus datos reales y la tabla de datos de ejemplo que adjuntó?
Re: encontrar valores y categorizarHola Greg,
Gracias por la respuesta y el guión. Lamentablemente, no funciona con mis datos. Los resultados son dos nuevas columnas sin datos en la primera columna y solo una entrada en la primera celda de la columna 2 ("4,20533670002011e-315").
¿Alguna idea de lo que podría haber salido mal?
Re: encontrar valores y categorizarAlgo como esto debería ayudar si lo entiendo correctamente.
dt = Current Data Table();
dt << New Column( "isbelow05", formula( :Profildjup <= 0.5 ) );
dt << New Column( "rank", formula( Col Rank( -(:n rows + :Profildjup), :isbelow05, :Stationsnamn ) ) );
dt << select where( :isbelow05 & :rank <= 3 );
Si por profundidad "abajo" quiere decir numéricamente mayor, entonces cambie "<= 0.5" a "> = 0.5". Gracias por incluir el archivo de ejemplo.