Cómo filtrar un conjunto de datos usando un conjunto de datos separado con miles de ID (subconsulta, secuencias de comandos)Tengo un conjunto de datos "GRANDE" que contiene varios millones de filas. Cada fila tiene un campo IDENT específico. IDENT puede ocurrir varias veces. Tengo otro conjunto de datos más pequeño "PEQUEÑO", que contiene solo cientos de miles de filas. Cada fila tiene también un campo IDENT específico.
Ahora solo quiero mantener todas las filas de GRANDE, que tienen el mismo IDENTIFICADOR en PEQUEÑO. En otras palabras: Cómo filtrar GRANDE usando el campo IDENT de PEQUEÑO. Usando SAS SQL, eso sería fácil, por ejemplo
proc sql;
crear tabla FILTRADO
como seleccionar * de GRANDE
donde IDENT en (seleccione IDENT de PEQUEÑO);
abandonar ;
¿Puedo hacer algo como esto en JMP?
Saludos cordiales
novato
Re: Cómo filtrar un conjunto de datos usando un conjunto de datos separado con miles de ID (subconsulta, secuencias de comandos)en el script JSL se ve así:
data table ("Big") << join (with(data table("Small")),
by matching columns (::ID=:ID),
drop mutiples (0,0),
include nonmatches(0,0),
preserve main table order(1)) ;
Cuidado con posibles pequeños errores tipográficos...
Re: Cómo filtrar un conjunto de datos usando un conjunto de datos separado con miles de ID (subconsulta, secuencias de comandos)Si ejecuta Join de forma interactiva, puede ir a la tabla de datos que acaba de crear, hacer clic con el botón derecho en el elemento "Fuente", junto al triángulo verde en el panel de la tabla en el borde izquierdo de la tabla de datos y seleccionar " Editar".Le mostrará el JSL que se usó para crear la tabla de datos unidos.
Re: Cómo filtrar un conjunto de datos usando un conjunto de datos separado con miles de ID (subconsulta, secuencias de comandos)Agradezco sus esfuerzos, pero estaba interesado en una respuesta de secuencias de comandos, no en una explicación interactiva.
Re: Cómo filtrar un conjunto de datos usando un conjunto de datos separado con miles de ID (subconsulta, secuencias de comandos)Estimado Newbie2Jumpie,
esto es posible de varias maneras. Depende, si desea crear una nueva tabla o si solo desea filtrar. Comencemos con la creación de una nueva tabla (verifique si tiene suficiente RAM):
- Abra ambas tablas en JMP
- En el menú de la tabla, tiene "Unirse", donde puede hacer una base de datos como unirse según lo requiera, como este, por ejemplo.

3. Presione ok y obtendrá una nueva tabla acortada y podrá cerrar las otras dos tablas.
Puede lograr algo similar con el menú Tablas -> JMP Query Builder, sin embargo, allí tiene aún más opciones como en un Query Builder de base de datos y obtiene, además del script de origen, un script de actualización y otras opciones que puede usar para cambiar las opciones de consulta. (Adjunto un ejemplo para ilustrar esto (Big Class.jmp, ID_Table.jmp, SQLQuery1.jmp)
La otra opción le permite filtrar sobre la marcha: Usar tablas vinculadas/referenciadas, también conocidas como unión virtual. Allí, en la tabla a la que se hace referencia, necesita una columna con el mismo nombre que en la tabla grande para la identificación, y otra columna con el mismo contenido que la columna de identificación de la tabla pequeña (en realidad, el doble de la misma columna de identificación, solo que con nombres diferentes . (Por favor, eche un vistazo en el segundo ejemplo. En la tabla pequeña, especifique la columna de ID con el mismo nombre que en la tabla grande como ID de enlace (haga clic con el botón derecho en la columna e ID de enlace). En la tabla grande, haga clic con el botón derecho en la columna ID y seleccione Referencia de enlace y, como referencia, elija la tabla pequeña. Obtiene todas las columnas de la tabla pequeña ahora también visualizadas en la tabla grande como columnas ocultas. Ahora puede filtrar a través de esta segunda columna de ID que solo tiene entradas como en la tabla pequeña. Esto excluirá a todos los demás y, por lo tanto, solo tendrá en cuenta aquellas filas que son de interés, pero que se enumeran en una tabla diferente.