하위 집합 스크립팅<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMP 사용자 여러분, 안녕하세요.
큰 데이터 파일의 하위 집합에 대한 스크립트를 생성할 수 있지만, 이 파일의 이름을 수동으로 지정하고 두 번째 및 세 번째 하위 집합 스크립트를 통해 모두 개별적으로 실행해야 합니다. 하위 집합 명령을 반복적으로 실행하고 하위 집합 정의를 포함하도록 파일을 저장하는 방법이 있습니까?
예: 파일 "색상"을 column1(빨강, 파랑, 녹색)으로 하위 집합으로 만들어 파일 생성 및 저장: Colors.red.jmp, Colors.blue.jmp, Colors.green.jmp 및 column8(밝음, 밝음)로 하위 집합 , 어둡게) 파일 생성 및 저장
Colors.red.bright.jmp, Colors.red.light.jmp, Colors.red.dark.jmp, Colors.blue.bright.jmp, Colors.blue.light.jmp, Colors.blue.dark.jmp, 색상. green.bright.jmp, Colors.green.light.jmp, Colors.green.dark.jmp.
열 위치는 다양합니다.
감사합니다 !!!
Re: 서브세트 스크립팅여전히 작동하지 않았습니다. 시간 (30), (90) 등도 더 추가했습니다. 파일을 저장 보호할 수 있었습니다. 즉, 파일을 저장해야 하는지 여부를 명시하지 않고는 파일을 닫을 수 없었지만 이름은 여전히 myfile 2 3.jmp 등의 하위 집합의 하위 집합이었습니다. 어떻게 든 하위 집합 변수 목록이 꺼져 있다고 생각합니다. 주말 동안 더 많은 문제를 해결할 예정이며 여기서 JMP 버전 작업에 익숙한 사람에게 도움을 요청할 수 있습니다.
귀하의 도움과 조언에 감사드리며 즐거운 주말 보내세요, MS!
Re: 서브세트 스크립팅성능 문제 일 수 있습니다. JMP가 테이블을 저장하려고 시도하기 전에 테이블이 완전한지 확인하려면 두 For 루프 내에 Wait(0) 명령을 삽입해 보십시오.
Re: 서브세트 스크립팅이건 이상해. 동일한 디렉토리에서 dt를 여는 데 사용했기 때문에 경로가 정확합니다. 모든 파일을 생성하지만 "Subset of Subset of MyFile 2 3.jmp", "Subset of Subset of MyFile 2 2.jmp" 등과 같은 이름을 가집니다. 이 스크립트는 파일을 생성하지만 불행히도 이름을 올바르게 지정하고 저장하지 않습니다. 최악의 시나리오는 수동으로 이름을 지정하므로 여전히 시간이 많이 절약됩니다!
당신의 노력에 감사드립니다.
에릭
Re: 서브셋 스크립팅방금 JMP 9.0.3에서 스크립트를 사용해 보았는데 JMP 10에서처럼 완벽하게 작동했습니다.
경로 변수를 확인하십시오. 문자열이어야 하며 /로 시작하고 끝나야 합니다.
예를 들어 내 Mac에서는 myPath = "/Users/MS/Desktop/"이 작동합니다.
Re: 서브세트 스크립팅안녕하세요 MS,
그것은 매우 가깝습니다!모든 하위 집합을 만들었지만 테이블을 저장하지 않았습니다. 이 메시지를 받았습니다: 파일을 저장할 수 없습니다. 알 수 없는 데이터 대상입니다.
JMP 9를 사용하고 있는데 파일 생성 명령어에 차이가 있는 건지, 제가 뭔가 잘못하고 있는 건지 궁금합니다. 스크립트에 올바른 경로를 입력했습니다.
감사해요,
에릭
Re: 서브세트 스크립팅최소한 JMP 10에는 "Subset by" 확인란이 있습니다. 선택한 경우 선택한 열의 모든 수준에 대한 하위 집합이 자동으로 생성됩니다. by-columns의 개수를 알면 JSL에서 해당 기능을 쉽게 구현할 수 있습니다. 그러나 이것을 일반화하는 것은 내가 상상했던 것보다 더 까다로웠다.
순차적으로 생성된 하위 집합을 목록(목록 내)에 삽입하는 것을 기반으로 하는 이 접근 방식은 다음과 같이 작동하는 것 같습니다.
//예제 테이블
dt = 새 테이블 ( "색상" ,
행 추가 ( 12 ) ,
새 열 ( "색상" ,
성격 ,
명사 같은 ,
값 설정 ( { "빨간색" , "빨간색" , "빨간색" , "빨간색" , "파란색" , "파란색" , "파란색" , "파란색" , "파란색" , "녹색" , "녹색" , "녹색" } )
) ,
새 열 ( "강함" ,
성격 ,
명사 같은 ,
값 설정 (
{ "밝은" , "밝은" , "어두운" , "빛" , "빛" , "빛" , "빛" , "어두운" , "어두운" , "어두운" , "빛" , "밝은" }
)
) ,
새 열 ( "마치다" ,
성격 ,
명사 같은 ,
값 설정 (
{ "매트" , "공백" , "매트" , "공백" , "매트" , "공백" , "매트" , "공백" , "매트" , "공백" , "매트" , "공백" }
)
) ,
새 열 ( "콜렌시티" , 성격 , 명사 같은 )
) ;
각 행에 대해 ( : 대담함 = 색상 || 강함 || 마치다 ) ; // 잘 작동하는지 확인하기 위해...
// 예제 테이블 종료
// 여기에서 스크립트 시작
열 = { 색상 , 강함 , 마치다 } ; // 열 하위 집합의 nr(계층적 순서)
NT = N테이블 () ; //현재 열려 있는 테이블 수
하위 목록 = 평가 목록 ( { dt << 부분 집합 ( ~에 의해 ( 열 [ 1 ] ) )} ) ; //첫 번째 수준 하위 집합
// 하위 수준 하위 집합을 재귀적으로 만듭니다.
을 위한 ( 나 = 2 , 나 <= N개 항목 ( 열 ) , 나 ++,
에 집어 넣다 ( 하위 목록 , 평가 목록 ( { 평가 ( 하위 목록 [ 나 - 1 ] ) << 부분 집합 ( ~에 의해 ( 열 [ 나 ] ) )} ) )
) ;
// 모든 하위 집합의 이름을 지정하고 저장합니다.
마이패스 = "길" ; //원하는 경로로 변경
을 위한 ( 나 = 1 , 나 <= N테이블 () - NT , 나 ++,
TV = 데이터 테이블 ( 나 ) << 테이블 변수 이름 가져오기 ; // 레벨은 테이블 변수로 저장됩니다.
하위 이름 = {} ;
을 위한 ( 제이 = 1 , 제이 <= N개 항목 ( TV ) , 제이 ++,
에 집어 넣다 ( 하위 이름 , 데이터 테이블 ( 나 ) << 테이블 변수 가져오기 ( TV [ 제이 ] ) )
) ;
에 집어 넣다 ( 하위 이름 , dt << 이름을 얻다 ) ;
반전 ( 하위 이름 ) ;
데이터 테이블 ( 나 ) << 구하다 ( 마이패스 || 연결 항목 ( 하위 이름 , "." ) ) ;
) ;
// 스크립트 종료 //모두 종료(데이터 테이블);
Re: 서브세트 스크립팅감사합니다.
문제는 내가 중간 파일을 보관해야 하고 내가 준 예제가 만들어졌다는 것입니다. 열 이름은 매번 변경됩니다.
감사해요,
에릭
Re: 서브세트 스크립팅여러 가지 방법으로 큰 데이터 세트의 하위 집합을 만들고 각 하위 집합에서 동일한 분석을 실행해야 하는 애플리케이션이 있습니다.별도의 데이터 세트를 만드는 대신 SELECT와 EXCLUDE의 조합을 사용하여 큰 데이터 세트의 데이터를 분석할 준비가 되도록 합니다.예를 들어:
dt = 새 테이블 ( "색상 예" ,
행 추가 ( 12 ) ,
새 열 ( "색상" , 성격 , 명사 같은 ,
값 설정 (
{ "빨간색" , "빨간색" , "빨간색" , "빨간색" , "파란색" , "파란색" , "파란색" , "파란색" , "파란색" ,
"녹색" , "녹색" , "녹색" } ) ) ,
새 열 ( "강함" , 성격 , 명사 같은 ,
값 설정 (
{ "밝은" , "밝은" , "어두운" , "빛" , "빛" , "빛" , "빛" , "어두운" ,
"어두운" , "어두운" , "빛" , "밝은" } ) ) ) ;
NR = nrows ( dt ) ;
color_list = { "빨간색" , "파란색" , "녹색" } ;
intensity_list = { "밝은" , "빛" , "어두운" } ;
~을 위한 ( 나 = 1 , 나 <= 나이트 ( color_list ) , 나 ++,
one_color = color_list [ 나 ] ;
~을 위한 ( 케이 = 1 , 케이 <= 나이트 ( intensity_list ) , 케이 ++,
one_intensity = intensity_list [ 나 ] ;
// 이 색상 및 강도와 일치하지 않는 모든 행을 제외합니다.
dt << 어디를 선택 ( : 색상 == one_color & : 강함 == one_intensity )
<< 행 선택 반전 << 들어오지 못하게 하다 ;
선택되지 않음 = nr - nrows ( dt << 선택한 행 가져오기 ) ;
dt << 선택 지우기 ;
만약에 ( 선택되지 않음 > 0 ,
// 여기에서 dt에 대한 분석을 수행합니다.제외되지 않은 행만 사용됩니다.
// 제외된 행을 무시하는 유일한 명령은 Tables >> Summary입니다.
인쇄 ( "# 행: " || 숯 ( 선택되지 않음 ) || " 색상: " || one_color ||
" 강함: " || one_intensity ) ;
) ;
// 다음 선택을 위해 정리
dt << 행 상태 지우기 ;
) ;
) ;