하위 집합 생성에 대해 자세히 알아보기<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요 포스팅 참고하겠습니다 https://communities.sas.com/message/166376#166376 올해 5월부터.
이 예에서는 1) 먼저 데이터 필터를 추가하고 2) 하위 집합을 설정하여 새 데이터 테이블을 만드는 방법을 설명합니다.
dt = 열기(빅클래스);
dt << data filter (add filter(columns(:age),where(:age=={12,13}), Mode (select(1)));
sub1 = dt<
결과적으로 "regions"라는 이름의 데이터 테이블이 생성됩니다. 예상대로.
내 자신의 데이터 세트(BigClass 예제가 작동합니다!!)를 사용하여 유사한 예제를 만들었는데 저에게는 잘 작동하지 않습니다. 제가 뭔가 잘못 알고 있는 것 같습니다. 여기에 내 프로그램 흐름이 첨부되어 있습니다.
BigClass 예제와 내 예제의 차이점은 전체 스크립트를 실행할 때 데이터 필터가 선택되지 않는다는 것입니다. (특정 이름이 포함된 원본 코드를 보낼 수 있도록 Excel 파일에서 파일 로드를 생략했습니다.) 설명: 열의 텍스트가 "d" 또는 "I"로 시작하는 행만 선택하는 문자 열이 있습니다. 데이터 필터를 수행할 새 열을 만들어야 한다는 것을 알았습니다. 전체적으로 코드를 실행하면 행이 선택되지 않고 하위 집합 데이터 테이블이 생성되지 않습니다. 새 열 Onelettet이 생성될 때까지 먼저 코드를 실행한 다음 데이터 필터를 실행하면 필터가 생성되고 행이 선택됩니다. 마지막으로 하위 집합 데이터 테이블이 생성됩니다. 그러나 이러한 일들은 스크립트가 실행되는 방식으로 발생해야 합니까? 또는?
이것은 스크립팅 사용의 기본이므로 이러한 미묘함을 깊이 이해해야 합니다.
문안 인사
폴
Re: 하위 집합 생성에 대해 자세히 알아보기다음은 MS의 예제 코드를 사용하여 선택한 상태로 전환하기 위해 데이터 테이블의 행이 필요하지 않기 때문에 매우 강력한 직접 솔루션입니다.
dt = 새 테이블 ( "테스트" ,
행 추가 ( 5 ) ,
새 열 ( "인스트" , 성격 ,
값 설정 ( { "북" , "트럼펫" , "거문고" , "클라리넷" , "디저리두" } )
)
) ;
셀 = dt << 행 가져오기 ( 다음으로 시작 ( : 삽입 , "디" ) | 다음으로 시작 ( : 삽입 , "엘" ) ) ;
dt << 부분 집합 ( 출력 테이블 이름 ( "셀 인스트" ) , 행 ( 셀 ) , 선택한 열 ( 0 ) ) ;
Re: 하위 집합 생성에 대해 자세히 알아보기참조를 제공한 경우 데이터 필터를 닫는 것은 간단합니다.
df = dt << 데이터 필터 ( ... ) ;
df << 닫다 ;
Re: 하위 집합 생성에 대해 자세히 알아보기안녕하세요 MS,
wait() 추가; 수식 평가 후 하위 집합 명령이 실행되기 전에 필터가 설정되지 않는 문제를 해결합니다. 감사합니다.
필터 창을 닫는 명령은 무엇입니까? 하위 집합 이후에 화면에 머물고 싶지 않습니다. 나는 단지 데이터 세트를 원한다. 사실 볼 필요가 전혀 없습니다.
그리고 네, 하나의 진술로 선택이 이루어질 수 있다고 생각했습니다. 그것을하는 방법을 몰랐습니다.
감사합니다
폴
Re: 하위 집합 생성에 대해 자세히 알아보기코드를 테스트하기 위한 테이블 없이 특정 경우에 작동하지 않는 이유를 말하기는 어렵습니다. 코드가 동일한 스크립트에서 생성된 열 수식에 의존하는 경우 수식 평가가 스크립트 실행보다 지연되어 예기치 않은 결과가 발생할 수 있음을 경험했습니다. 이것을 피하려면 삽입을 시도할 수 있습니다. 기다리다() 또는 << 평가 공식 중요한 단계에서.
그러나 이 특정한 경우에 내가 올바르게 이해했다면 새 열(또는 데이터 필터)이 필요하지 않습니다. 아마도 아래 예제가 도움이 될 수 있습니다.
//예제 테이블
dt = 새 테이블 ( "테스트" ,
행 추가 ( 5 ) ,
새 열 ( "인스트" , 성격 ,
값 설정 ( { "북" , "트럼펫" , "거문고" , "클라리넷" , "디저리두" } )
)
) ;
// 데이터 필터를 사용하여 d 또는 l로 시작하는 instr을 선택합니다.
셀 = dt << 행 가져오기 ( 다음으로 시작 ( : 삽입 , "디" ) | 다음으로 시작 ( : 삽입 , "엘" ) ) ;
dt << 데이터 필터 (
필터 추가 ( 열 ( : 삽입 ) , 어디 ( : 삽입 = : 삽입 [ 셀 ] ) , 방법 ( 선택하다 ( 1 ) ) )
) ;
dt << 부분 집합 ( 출력 테이블 이름 ( "셀 인스트" ) , 선택한 행 ( 1 ) , 선택한 열 ( 0 ) ) ;
// 또는 데이터 필터가 없는 보다 직접적인 접근 방식
dt << 어디를 선택 ( 다음으로 시작 ( : 삽입 , "디" ) | 다음으로 시작 ( : 삽입 , "엘" ) ) ;
dt << 부분 집합 ( 출력 테이블 이름 ( "셀 인스트" ) , 선택한 행 ( 1 ) , 선택한 열 ( 0 ) ) ;