Seleccionar filas con valores máximos en una columnaPuedo usar el resumen para encontrar los máximos (múltiples debido a grupos) en una columna. Sin embargo, también quiero buscar en qué filas de la tabla original ocurren los máximos.
hay una solucion facil? ¡Gracias por tu ayuda!Re: Seleccionar filas con valores máximos en una columnaHola, lamento responder a un hilo antiguo, pero no puedo encontrar ejemplos relevantes en otros lugares.
Me gustaría resumir por grupo, luego seleccionar aquellas filas que tienen peso máximo por grupo.
Pude resumir, pero no sé cómo seleccionar esas filas.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :age, :sex ), m = Max( :weight ) );
/* How to select those rows summarized by group?
Gracias
Re: Seleccionar filas con valores máximos en una columna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Fantástica solución. ¡Esto es exactamente lo que estaba buscando!
Re: Seleccionar filas con valores máximos en una columnaTambién puedes usar OBTENER FILAS DONDE :
tu matriz = dt << obtener filas donde ( : nombre de columna == valor pico ) ;
La ventaja de obtener filas donde es que a) es un paso y no dos, yb) no se seleccionan filas en su tabla.Si necesita las filas seleccionadas, el enfoque que muestra MOSFETtestEng será suficiente.
Re: Seleccionar filas con valores máximos en una columnaSé que esto es dos años después, pero esto es para todos aquellos que encontraron esta publicación con la misma pregunta.
Pruebe la función "Obtener filas seleccionadas" en su secuencia de comandos.
yourarray = dt << Get Selected Rows;
Ahora la matriz "su matriz" contendrá una lista de los números de fila que se seleccionan.
Para encontrar las filas con el valor máximo, intente
// finds the maximum value in the columnt
peakvalue = Col Max( :columname);
// selects all rows with the maximum value. (dt is the name of the data table.)
dt << Select Where( :columnname == peakvalue);
// stores a list of the row numbers with the maximum value in this array
yourarray = dt << Get Selected Rows;
Re: Seleccionar filas con valores máximos en una columnaObtuve JMP10 y revisé este problema."Unirse" usando la coincidencia de columnas funciona bien.Supongo que la "actualización" de la tabla parece ser aún más sencilla.
Re: Seleccionar filas con valores máximos en una columnaFor Each Row() puede ser ineficiente para tablas grandes.
Select Where() probablemente será más rápido:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :age ), m = Max( :height ) );
dt<<SELECT where=""></SELECT>
Re: Seleccionar filas con valores máximos en una columnaEl guión se ve bien. Lo intentaré y te informaré.
Lo que me sorprendió es que JMP en sí mismo no mantiene el índice (número de fila) del máximo de datos en alguna parte.
PollaRe: Seleccionar filas con valores máximos en una columnaLo siento, tienes razón. Fui demasiado rápido para responder. Editaré mi publicación errónea anterior
Lo que quería sugerir es que puede intentar combinar Resumen con Actualización (o Unirse, no estoy seguro de que Actualización se encuentre en el menú de tablas de JMP7).
Aquí hay un ejemplo de secuencia de comandos que debería funcionar, pero puede no ser efectivo para tablas de datos muy grandes.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << clear select;
Summarize( g = by( :sex ), m = Max( :age ) );
For( j = 1, j <= N Items( g ), j++,
For Each Row( If( :sex == g[j] & :age == m[j], Row State() = Selected State( 1 ) ) )
);
Re: Seleccionar filas con valores máximos en una columnaEM,
Gracias. Lo probé y sigo seleccionando todas las filas en la tabla original cuando selecciono la segunda tabla de resumen. Cada vez que selecciono una fila (Máx. para el grupo) en la tabla de resumen, también se seleccionan todas las filas de la primera tabla de resumen del grupo.
Espero estar siguiendo correctamente tus instrucciones. ¿La segunda tabla de resumen se llama "DataTable By (group, data) By (group)"?
FYI, estoy usando JMP7.
PollaRe: Seleccionar filas con valores máximos en una columnajeff,
Gracias. Esta parece ser una característica nueva de JMP 9. Estoy usando JMP 7. Supongo que puedo solicitar una actualización.
Además, estoy tratando de seleccionar múltiples máximos en una columna. Los máximos pertenecen a diferentes grupos especificados en otras columnas.
PollaRe: Seleccionar filas con valores máximos en una columnaFilas->Selección de fila->Seleccionar dominante seleccionará las filas con los valores máximos (o mínimos) en una columna o grupo de columnas.
Creo que eso te dará lo que estás buscando.
jeffRe: Seleccionar filas con valores máximos en una columnaPuede hacer coincidir la tabla original con la tabla de resumen utilizando Actualizar (menú Tablas) con columna(s) de grupo = columna(s) de grupo y datos = máx(datos) como columnas coincidentes. Las filas máximas se indicarán mediante celdas que no faltan en la columna NRows agregada.
Mi primera respuesta se basó en un pensamiento descuidado...
El mensaje fue editado por: MS