취소
다음에 대한 결과 표시 
표시  만  | 다음에 대한 검색 
다음을 의미합니까? 
언어 선택 변환 막대 숨기기
게시된 스레드 원본 보기

루프 내에서 하위 집합 연결

awalts12
Level II

각 반복 중에 행의 하위 집합을 선택하는 루프가 있습니다.

해당 행을 연결한 다음 루프를 종료한 후 각 루프 중에 선택된 행 목록을 하나의 목록으로 표시하려고 합니다.

기본적으로 내가 가진 것은 다음과 같습니다.

코호트 ={xxx, yyy, zzz};

for (i=1, i<= N 항목(코호트), i++,

dt << Select Where( start with( :subject, cohort );

subCohort = dt << Subset( output table name( "test" ), Selected Rows( 50 ), invisible );

frozenlist = 연결(subCohort);

);

show(프리저리스트);

위에서 각 반복에 대한 하위 집합 테이블 "test"가 있는 개별 창을 얻었지만 하나의 목록에 함께 결합할 수는 없습니다.

도움을 주셔서 감사합니다.

아브람

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

1 채택된 솔루션

채택된 솔루션
DaveLee
Level IV

Re: 루프 내에서 하위 집합을 연결합니다.

약간의 건물 엠샤프 의 응답, 아마도 이것이 당신이 찾고 있는 것일 것입니다:

new = 새 테이블( "FreezerList" ); // 빈 테이블을 만듭니다.

코호트 = {xxx, yyy, zzz};

For( i = 1, i <= N 항목( 코호트 ), i++,

dt << Select Where( Starts With( :subject, cohort ), 현재 선택( "확장" ) );

subCohort = dt << Subset( output table name( "test" ), Selected Rows( 1 ), invisible );

new<< Concatenate( subCohort, 첫 번째 테이블에 추가 );

닫기(subCohort, NoSave);

);

5 응답 5
msharp
Super User (Alumni)

Re: 루프 내에서 하위 집합을 연결합니다.

이것은 혼란스럽습니다. 당신이 무엇을 하려는지 잘 모르겠습니다. (freezerlist = concatenate(subCohort)) 이치에 맞지 않으며, frozenlist가 무엇인지 모르기 때문에 머리나 꼬리를 만들 수 없습니다.데이터 테이블이 아닐까 싶습니다.

반복하면서 하위 집합을 만든 다음 해당 하위 집합을 연결하려고 합니까?어떤 경우에 한 번에 모든 작업을 수행하지 않고 하나의 하위 집합만 만드는 이유를 알고 싶습니다.

보병대 = { 트리플 엑스 , yyy , 쿨쿨 } ;

~을 위한 ( = 1 , <= N개 항목 ( 보병대 ) , ++,

dt << 위치 선택 ( ~로 시작하다 ( : 주제 , 보병대 [ ]) , 현재 선택 ( "연장하다" )) ;

) ;

서브코호트 = dt << 하위 집합 ( 출력 테이블 이름 ( "시험" ) , 선택한 행 ( 1 ) , 보이지 않는 ) ;

프리저리스트 = dt << 선택한 열 가져오기 ;

보여 주다 ( 프리저리스트 ) ;


참고: 문자열, 목록, 행렬 및 데이터 테이블을 연결할 수 있습니다.

연결 ( 문자열1 , 문자열2 ) ;

연결 ( 매트릭스1 , 매트릭스2 ) ;

데이터테이블1 << 사슬 같이 잇다 ( 데이터테이블2 ) ;



원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

awalts12
Level II

Re: 루프 내에서 하위 집합을 연결합니다.

죄송해요 ...

즉, 내가하려는 것은 루프를 사용하여 특정 접두사 (각 루프에서 변경됨) 및 기타 여러 기준 (정적)을 검색하는 행에 대한 긴 테이블을 읽는 것입니다.

루프를 통과할 때마다 특정 행이 식별됩니다.

검색되는 접두사는 각 반복마다 변경되지만 다른 기준은 동일하게 유지됩니다.

내가 원하는 것은 각 루프에서 식별된 행을 포함하는 단일 목록(freezerlist라고 함)을 만드는 것입니다.

감사

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

txnelson
Super User

Re: 루프 내에서 하위 집합을 연결합니다.

다음은 귀하가 원하는 것과 가깝다고 생각되는 작동하는 코드입니다. 행 번호가 아니라 선택한 행의 실제 데이터가 무엇인지 가정하겠습니다.

여기에 기본 이름 ( 1 ) ;

dt = 열려 있는 ( "$SAMPLE_DATA\빅 클래스.jmp" ) ;

// 예제와 일치하도록 열 이름 "name"을 "subject""로 변경합니다.

dt : 이름 << 이름 설정 ( "주제" ) ;

보병대 = { "씨" , "제이" , "에스" } ;

dt << 위치 선택 ( 다음으로 시작 ( : 주제 , 보병대[ 1 ] ) ) ;

baseDT = dt << 하위 집합 ( 출력 테이블 이름( "시험" ) , 선택한 행( 1 ) , 선택한 열( 0 ) ) ;

을 위한 ( 나 = 2 , <= N개 항목 ( 코호트 ) , ++,

dt << 위치 선택 ( 다음으로 시작 ( : 주제 , 보병대 ) ) ;

TempDT = dt << 하위 집합 ( 출력 테이블 이름( "시험" ) , 선택한 행( 1 ) , 선택한 열( 0 ) ) ;

baseDT = baseDT << 사슬 같이 잇다 ( TempDT , 첫 번째 테이블에 추가( 1 ) ) ;

닫다 ( TempDT , nosave ) ;

) ;

프리저리스트 = baseDT : 주제 <<가치 얻기;

보여 주다 (프리저리스트) ;

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

DaveLee
Level IV

Re: 루프 내에서 하위 집합을 연결합니다.

약간의 건물 엠샤프 의 응답, 아마도 이것이 당신이 찾고 있는 것일 것입니다:

new = 새 테이블( "FreezerList" ); // 빈 테이블을 만듭니다.

코호트 = {xxx, yyy, zzz};

For( i = 1, i <= N 항목( 코호트 ), i++,

dt << Select Where( Starts With( :subject, cohort ), 현재 선택( "확장" ) );

subCohort = dt << Subset( output table name( "test" ), Selected Rows( 1 ), invisible );

new<< Concatenate( subCohort, 첫 번째 테이블에 추가 );

닫기(subCohort, NoSave);

);

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.

awalts12
Level II

Re: 루프 내에서 하위 집합을 연결합니다.

감사합니다. 잘 작동합니다!

원래 English (US) 로 작성된 이 게시물은 귀하의 편의를 위해 번역되었습니다. 답장을 보내면 English (US) 로 다시 번역됩니다.