循環幫助!好吧,我喜歡JMP,但需要循環幫助。我想要做的是查看一個'Child'值是否在父表中(示例將在下面的數字2)。如果是這樣,我想為該父級(2)提取Child值(下面的3和4)。然後我希望代碼檢查3,4的父列等等....
親子
1 2
2 3
2 4
4 5
7 8
親子
1 2
1 3
1 4
1 5
7 8
我希望我能很好地描述這一點......
Re:循環幫助! @ cjs05 ,
有幾件事。
1。該社區是JMP社區,而不是SAS社區。雖然可能有一些用戶熟悉這兩者,但不要指望這個社區提供SAS的代碼指導,如果你想在SAS中使用代碼,我建議在communities.sas.com上嘗試這個問題。
2。如果您想在JMP中實現這一目標,那麼您就是在正確的位置,讓我們嘗試查看您的數據。
表1即 Beginning Table有2列,即Parent和Component。嘗試做類似下面的事情

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:循環幫助!我有一個有兩列的表。父和組件。我正在嘗試編寫一個執行以下操作的程序。
開始表
父組件
1 2
1 3
1 4
2。五
2。6
6。7
進入這個
父組件
1。2
1。3
1。4
1。五
1。6
1。7
基本上,如果一個組件在父列中(如2),我想拉出2的任何組件。
我真正努力的部分是讓它循環。我需要sas在父列中查找6,因為它是2的組件並繼續直到沒有匹配。
該表有大約120萬條記錄。有些父母有30個成分,有些則少得多。
有一次,我得到了下面的宏,但我只有JMP,不能運行它(我知道)...
宏% 環 ;
%做 %直到 ( & 計數 = 0 ) ;
PROC SQL ;
創建表有選擇合併 ( b 。親 ,一個 。親 ) 作為父母 ,合併 ( 一個 。零件 , b 。零件 ) 作為組件
從有一個剩下加入b b 。零件 = 一個 。親 ;
跑 ;
*如果父母中沒有組件則完成;
PROC SQL ;
選擇計數 ( * ) 成 : 計數
從有一個聯接b上b 。零件 = 一個 。親 ;
跑 ;
%結束 ;
%修補 ;
%環 ;
https://community.jmp.com/t5/forums/replypage/board-id/discussions/message-id/34434
任何幫助表示讚賞,如果這甚至可以完成...
Re:循環幫助! @ cjs05 ,
我很樂意幫助,但我不明白什麼是父表,你在追求什麼。如果您有2個表,包含父和子信息,並且您正在嘗試查找,則可以使用“JOIN”。查找下:
表 - >加入
否則,您能否上傳您的數據樣本集。這是我使用Sample數據放在一起的一個例子,您也可以嘗試並適應您的情況:
// 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 )
);