Aiuto loop!Ok, sto amando JMP ma ho bisogno di aiuto con un ciclo. Quello che sto cercando di fare è guardare se un valore "Bambino" è nella tabella genitore (un esempio sarebbe il numero 2 sotto). Se è così, voglio tirare i valori di Child (3 e 4 sotto) per quel genitore (2). Quindi voglio che il codice controlli la colonna genitore per 3,4 e così via ....
Padre Genitore
1 2
2 3
2 4
4 5
7 8
Padre Genitore
1 2
1 3
1 4
1 5
7 8
Spero di descriverlo bene ...
Ri: aiuto Loop! @ cjs05 ,
Un paio di cose
1. Questa comunità è una comunità JMP e non una comunità SAS. Mentre potrebbero esserci alcuni utenti che hanno familiarità con entrambi, non aspettarti che questa community fornisca indicazioni sul codice su SAS, ti consiglio di provare questa domanda su communities.sas.com se desideri il codice in SAS.
2. Se desideri ottenere questo risultato in JMP, sei nel posto giusto e proviamo a guardare i tuoi dati.
Tabella 1 es La tabella iniziale ha 2 colonne, ovvero padre e componente. Prova a fare qualcosa come sotto

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);
);Ri: aiuto Loop!Ho 1 tavolo con due colonne. Genitore e componente Sto cercando di scrivere un programma che faccia quanto segue.
Tabella iniziale
Componente genitore
1 2
1 3
1 4
2. 5
2. 6
6. 7
In questo
Componente genitore
1. 2
1. 3
1. 4
1. 5
1. 6
1. 7
Fondamentalmente se un componente è nella colonna genitore (come 2) voglio tirare qualsiasi componente di 2.
La parte con cui sto davvero lottando è quella di farla andare avanti. Ho bisogno di sas per cercare 6 nella colonna genitore poiché era un componente di 2 e continuare fino a quando non ci sono corrispondenze.
Questa tabella ha circa 1,2 milioni di record. Alcuni genitori hanno 30 componenti e alcuni ne hanno di meno.
Ad un certo punto mi è stata data la macro sotto, ma ho solo JMP e non posso eseguirlo (che io sappia) ...
% macro ciclo continuo ;
%fare %fino a ( & contare = 0 ) ;
proc sql ;
creare tavolo avere come selezionare fondersi ( B . genitore , un . genitore ) come genitore , fondersi ( un . componente , B . componente ) come componente
a partire dal avere un sinistra unisciti a b su b . componente = un . genitore ;
correre ;
* se non ci sono componenti in genitore allora fatto;
proc sql ;
selezionare contare ( * ) in : contare
a partire dal avere un join b su b . componente = un . genitore ;
correre ;
%fine ;
% MEND ;
%ciclo continuo ;
https://community.jmp.com/t5/forums/replypage/board-id/discussions/message-id/34434
Qualsiasi aiuto è apprezzato, se questo può anche essere fatto a tutti ...
Ri: aiuto Loop! @ cjs05 ,
Mi piacerebbe aiutare ma non capisco qual è il tavolo dei genitori e che cosa stai cercando. Se hai 2 tabelle, con le informazioni Parent e Child e stai cercando di cercare, puoi usare "JOIN". Guarda sotto:
Tabelle -> Iscriviti
Altrimenti, potresti caricare per favore set di campioni dei tuoi dati. Ecco un esempio che ho creato utilizzando i dati di esempio che puoi anche provare e adattare al tuo 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 )
);