루프 도움말!좋아, 나는 JMP를 좋아하지만 루프와 관련하여 도움이 필요하다. 내가 뭘 하려는지 '자식'값이 부모 테이블에있는 경우보세요 (예를 들어, 아래 2 번). 그렇다면 그 부모 (2)에 대해 하위 값 (아래 3과 4)을 가져 오려고합니다. 다음 코드를 3,4 등의 부모 열을 확인하고 싶습니다 ....
부모 자녀
1 2
2 3
2 4
4 5
7 8
부모 자녀
1 2
1 3
1 4
1 5
7 8
나는 이것이 잘 묘사되기를 희망한다 ...
다시 : 루프 도움말! @ cjs05 ,
몇 가지.
1. 이 커뮤니티는 JMP 커뮤니티이며 SAS 커뮤니티가 아닙니다. 두 사람 모두에게 익숙한 사용자가있을 수 있지만이 커뮤니티가 SAS에 코드 지침을 제공 할 것으로 기대하지 마십시오. SAS에 코드를 사용하려면 communities.sas.com에서이 질문을 시도하는 것이 좋습니다.
2. JMP에서이 목표를 달성하려면 올바른 위치에 있으며 데이터를 검토해보십시오.
표 1 즉 시작 표에는 부모 및 구성 요소라는 2 개의 열이 있습니다. 아래처럼 해보십시오.

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);
);다시 : 루프 도움말!두 개의 열이있는 테이블이 하나 있습니다. 부모 및 구성 요소. 다음을 수행하는 프로그램을 작성하려고합니다.
시작 테이블
상위 구성 요소
1 2
1 3
1 4
2. 5
2. 6
6. 7
이걸로
상위 구성 요소
1. 2
1. 삼
1. 4
1. 5
1. 6
1. 7
기본적으로 구성 요소가 2와 같은 상위 열에 있으면 2의 구성 요소를 모두 가져 오려고합니다.
내가 정말로 고심하고있는 부분은 이것을 반복하는 것이다. 부모 칼럼에서 6을 찾으려면 sas가 필요합니다. 2의 구성 요소이므로 일치가 없을 때까지 계속됩니다.
이 테이블에는 약 120 만 개의 레코드가 있습니다. 일부 학부모는 30 가지 구성 요소가 있고 일부는 훨씬 적은 구성 요소가 있습니다.
한 시점에서 나는 아래의 매크로를 받았지만, 나는 JMP 만 가지고 그것을 실행할 수 없다.
% 매크로 고리 ;
%해야 할 것 %까지 ( & 카운트 = 0 ) ;
proc SQL ;
몹시 떠들어 대다 표 가지고있다 고르다 합체하다 ( 비 . 부모의 , 에이 . 부모의 ) 부모로서 , 합체하다 ( 에이 . 구성 요소 , 비 . 구성 요소 ) 구성 요소로서
...에서 가지고있다 왼쪽 B에 B가있다. . 구성 요소 = 에이 . 부모의 ;
운영 ;
* 부모에 구성 요소가없는 경우 완료;
proc SQL ;
고르다 카운트 ( * ) 으로 : 카운트
...에서 조인에 b가있다. . 구성 요소 = 에이 . 부모의 ;
운영 ;
%종료 ;
%수선 ;
%고리 ;
https://community.jmp.com/t5/forums/replypage/board-id/discussions/message-id/34434
이것도 전혀 할 수 없다면 어떤 도움을 주시면 감사하겠습니다 ...
다시 : 루프 도움말! @ cjs05 ,
나는 돕고 싶지만 부모 테이블이 무엇인지, 그리고 부모 테이블이 무엇인지 이해하지 못합니다. 상위 및 하위 정보가있는 2 개의 테이블이 있고 조회하려는 경우 "JOIN"을 사용할 수 있습니다. 아래를보세요.
테이블 -> 가입
그렇지 않으면 데이터 샘플을 업로드 해주세요. 다음은 샘플 데이터를 사용하여 작성한 사례입니다.이 예제 데이터는 사례에 적용 해 볼 수도 있습니다.
// 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 )
);