Ayuda de bucle!Ok, me encanta JMP pero necesito ayuda con un bucle. Lo que estoy tratando de hacer es mirar si hay un valor 'Niño' en la tabla principal (un ejemplo sería el número 2 a continuación). Si es así, quiero extraer los valores secundarios (3 y 4 a continuación) para ese padre (2). Entonces quiero que el código compruebe la columna principal para 3,4 y así sucesivamente ....
Padre hijo
1 2
2 3
2 4
4 5
7 8
Padre hijo
1 2
1 3
1 4
15
7 8
Espero que esté describiendo esto bien ...
Re: ayuda de bucle! @ cjs05 ,
Un par de cosas.
1. Esta comunidad es una comunidad JMP y no una comunidad SAS. Si bien puede haber algunos usuarios que estén familiarizados con ambos, no espere que esta comunidad brinde orientación sobre el código en SAS, le recomendaría que pruebe esta pregunta en communities.sas.com si desea el código en SAS.
2. Si desea lograr esto en JMP, está en el lugar correcto y déjenos intentar ver sus datos.
Tabla 1 es decir La tabla de inicio tiene 2 columnas: principal y componente. Intenta hacer algo como abajo

dt = Current Data Table();
Mat = dt << Get As Matrix;
DesComponent = 6 ;
Check = Loc(Mat[0,2] == DesComponent); // To Initialize
While(N Rows(Check)!= 0,
Check = Loc(Mat[0,2] == DesComponent);
DesComponent = Mat[Check,1];
Print(DesComponent);
);Re: ayuda de bucle!Tengo 1 mesa con dos columnas. Padre y componente. Estoy tratando de escribir un programa que haga lo siguiente.
Mesa de inicio
Componente principal
1 2
1 3
1 4
2. 5
2. 6
6. 7
Dentro de esto
Componente principal
1. 2
1. 3
1. 4
1. 5
1. 6
1. 7
Básicamente, si un componente está en la columna principal (como 2) quiero extraer cualquier componente de 2.
La parte con la que realmente estoy luchando es hacer que esto se repita. Necesito que sas busque 6 en la columna principal, ya que era un componente de 2 y continuar hasta que no haya coincidencias.
Esta tabla tiene alrededor de 1.2 millones de registros. Algunos padres tienen 30 componentes y otros tienen mucho menos.
En un momento dado me dieron la macro a continuación, pero solo tengo JMP y no puedo ejecutarlo (que yo sepa) ...
%macro lazo ;
%hacer %hasta ( Y contar = 0 ) ;
proc sql ;
crear mesa tienen como seleccionar juntarse ( segundo . padre , una . padre ) como padre , juntarse ( una . componente , segundo . componente ) como componente
desde tener un izquierda unirse tener b en b . componente = una . padre ;
correr ;
* si no hay componentes en el padre entonces hecho;
proc sql ;
seleccionar contar ( * ) dentro : contar
desde tener una unión tener b en b . componente = una . padre ;
correr ;
%fin ;
%arreglar ;
%lazo ;
https://community.jmp.com/t5/forums/replypage/board-id/discussions/message-id/34434
Cualquier ayuda es apreciada, si esto se puede hacer en absoluto ...
Re: ayuda de bucle! @ cjs05 ,
Me encantaría ayudar, pero no entiendo qué es la tabla de padres y qué es lo que está buscando. Si tiene 2 tablas, con información para padres e hijos y está intentando buscar, puede usar "ÚNETE". Búscalo en:
Tablas -> Unirse
De lo contrario, ¿podría cargar conjuntos de muestras de sus datos? Este es un ejemplo que recopilo utilizando datos de muestra que también puede probar y adaptar a su caso:
// Clean
Clear Globals(); Clear Log(); Close All(datatables,"No Save");
dt1 = Open( "$SAMPLE_DATA/Animals.jmp" );
dt2 = Open( "$SAMPLE_DATA/Animals Subset.jmp" );
// For Demo
Column(dt2,"miles") << Set Selected(1);
dt2 << Delete Columns;
// Look Up Information
dt3 = dt2 << Join(
With( dt1 ),
Select( :species, :subject, :season ),
SelectWith( :miles ),
By Matching Columns(
:species = :species,
:subject = :subject,
:season = :season
),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);