<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />여러분 안녕하세요
동일한 테이블의 여러 열을 그룹화하는 것이 가장 좋은 방법에 대한 도움이 필요합니다.
내 테이블에는 다음과 같은 열이 있습니다.
Z3, X1, Z2, X3, X4, Y1, X2, Y2, Z1
가능한 경우 모든 X, Y 및 Z를 함께 숫자 순으로 그룹화하려고합니다. 이것은 내가 다루는 것의 압축 된 버전으로 보통 여러 그룹 크기가 필요한 수백 개의 열 순서입니다.
가장 간단한 방법은 열 이름을 기반으로 목록을 만든 다음 loc () 기능을 사용하여 각 유사한 열 이름의 위치를 반환하는 것입니다. 그러나 group () 명령을 사용하는 가장 좋은 방법은 무엇입니까?
이 문제에 대한 도움을 주시면 감사하겠습니다.
감사!
훌륭한 작품, 고마워요 MS!
후속 질문 ... 사용자에게 모든 그룹의 목록을 표시하고 목록에서 하나 이상의 그룹을 선택한 다음 스크립트로 선택한 그룹 만 포함 된 하위 세트 테이블을 만들게하는 쉬운 방법이 있습니까?
이를 수행하는 데는 여러 가지 방법이있을 수 있습니다. 다음은 그룹화가 열 이름의 첫 번째 문자를 기반으로하는 모든 테이블에서 작동해야하는 한 가지 아이디어입니다.
// 예제 테이블
이름 = { Z 3 , X 1 , Z 2 , X 3 , X 4 , Y 1 , X 2 , Y 2 , Z 1 } ;
dt = 새 테이블 ( "테스트" ) ;
에 대한 ( 나는 = 1 , 나는 <= N 개 항목 ( 이름 ) , 나는 ++,
dt << 새 열 ( 숯 ( 이름 [ 나는 ] ) , 숫자 )
) ;
// 테이블 열을 정렬하고 열 이름의 첫 번째 문자 목록을 만듭니다.
dt << 이름순으로 재주문하다. () ;
목격자 = dt << 열 이름을 얻는다. ( 끈 ) ;
에 대한 ( 나는 = 1 , 나는 <= N Col ( dt ) , 나는 ++,
목격자 [ 나는 ] = 왼쪽 ( 목격자 [ 나는 ] , 1 )
) ;
// 고유 한 열 이름의 첫 번째 문자 목록 만들기
col_type = 연관 배열 ( 목격자 ) << 열쇠를 얻다 ;
// 그룹 열
에 대한 ( 나는 = 1 , 나는 <= N 개 항목 ( col_type ) , 나는 ++,
pos = Loc ( 목격자 , col_type [ 나는 ] ) ;
dt << 그룹 열 ( 기둥 ( pos [ 1 ] ) , N 행 ( pos ) ) ;
) ;