스피커
|
성적 증명서
|
| 조던 힐러 |
안녕하세요 여러분. 저는 Jordan Hiller이고 이 강연은 Steal This Code입니다! 향상된 로그에서 얻은 스크립트에 대한 세 가지 업그레이드. |
| |
그리고 여기 이 강연의 영감이 있습니다. 선동가이자 운동가인 Abbie Hoffman의 책입니다. 예, 그는 자신의 책 이름을 이 책을 훔쳐라라는 이름으로 지었습니다. 멋진 제목입니다. 당신의 책에 그런 이름을 붙이는 것이 훌륭한 사업 계획인지는 확실하지 않지만 어쨌든 그것은 매우 눈길을 끕니다. |
| |
그렇다면 이 코드를 훔치는 이유는 무엇입니까? JMP는 코드를 훔치기를 원합니다. 아이디어는 JMP에서 가리키고 클릭하여 분석을 수행한다는 것입니다. |
| |
포인트 앤 클릭 뒤의 코드가 저장됩니다. 강화된 로그에 저장되며 이를 가져와서 재사용할 수 있습니다. |
| |
이것이 프로덕션 스크립트의 약 90%입니다. 당신은 그것을 잡고 당신이 할 수 있도록 그것을 재사용 할 것입니다 |
| |
일반적인 작업을 자동화하고 일련의 포인트 앤 클릭 대신 한 번의 버튼 클릭으로 수행합니다. 이것이 전체 목표입니다. |
| |
향상된 로그의 스크립트이며 이것이 프로덕션 스크립트의 뼈대인 뼈대입니다. |
| |
약 10% 정도는 직접 작성해야 하며 이것이 이 강연의 목표입니다. 우리는 프로덕션 스크립트를 함께 유지하는 결합 조직에 대해 이야기할 것입니다. |
| |
그래서 이 강연에서 저는 여러분과 함께 집중할 것입니다. 아시다시피 구문의 핵심이 아니라 |
| |
큰 그림에 대해 훨씬 더 많이 알고 있으며 JSL 프로그래밍을 배우는 좋은 방법이라고 생각하는 것과 일치합니다. 기존 코드를 사용하여 예제를 통해 학습하는 것이 훨씬 좋습니다. 해당 코드를 사용하십시오. |
| |
원하는 작업을 수행하는 스니펫을 찾으십시오. JMP 사용자 커뮤니티나 스크립팅 가이드에서 찾을 수 있습니다. |
| |
그리고 그것을 복사하여 사용에 맞게 조정하십시오. 구문의 모든 복잡성을 알 필요는 없습니다. 그렇게 하면 정말 멀리 갈 수 있습니다. 구문 학습은 경험을 쌓으면서 따라옵니다. |
| |
따라서 향상된 로그에서 코드를 향상시키기 위해 수행할 수 있는 작업에 대한 세 가지 사례 연구에 대해 이야기할 것입니다. 하지만 먼저 JSL을 검토해 보겠습니다. 일부 JSL 기본 사항에 대한 소개일 수도 있습니다. |
| |
따라서 시작하는 경우 JSL에 대해 알아야 할 중요한 점은 모든 것이 객체라는 것입니다. 당신이 하는 모든 것 |
| |
데이터 테이블과 데이터 테이블의 열, 배포 플랫폼과 같은 플랫폼, 그래프 작성기, Fit Y by X, |
| |
그리고 해당 플랫폼에서 오는 보고서. 따라서 개체가 있을 때 작업하는 방식은 개체에 메시지를 보내는 것입니다. 따라서 개체는 메시지를 받습니다. 다음은 강화된 로그에서 복사한 정말 간단한 예입니다. |
| |
샘플 데이터 디렉토리에서 Big Class 데이터 테이블을 열고 간단한 분포 분석을 실행하십시오. 이것이 바로 로그에서 복사한 코드의 모습입니다. |
| |
지금. |
| |
우리가 하려는 것, 가장 먼저 해야 할 일은 데이터 테이블의 이름을 지정하는 것입니다. 이름을 지정하고 이를 위해 여기 5번째 줄의 코드를 가져와서 향상시켰습니다. 나 |
| |
이 bctable=을 그것의 나머지 부분 앞에, 문장의 열린 부분 앞에 추가했습니다. 좋습니다. 그 데이터 테이블을 열면 bctable이라는 이름이 생성됩니다. 알다시피, 나는 bctable을 선택했습니다. 문서에서 dt를 볼 수 있습니다. 원하는 것을 사용하십시오. 이것은 귀하가 지정합니다. |
| |
이를 강조 표시하고 실행 버튼을 클릭하여 Big Class를 열고 동시에 bctable이라는 이름을 지정하여 실행해 보겠습니다. 지금 하는 것의 미덕이 왜 중요한지, 지금 내가 이것을 가지고 있기 때문입니다. |
| |
핸들. 나중에 코드에서 사용할 수 있는 후크인 bctable입니다. 내가 bctable을 말할 때마다 나는 Big Class에 대해 이야기하고 있습니다. |
| |
그래서 |
| |
다음 줄이 있지만 배포 명령이고 그것도 수정했습니다. 그리고 알다시피, 여기 전에 로그에서 알몸 배포 명령입니다. 그것은 가지고 있지 않습니다 ... |
| |
데이터 테이블을 가리키고 있지 않습니다. 이 방식으로 실행하면 JMP는 포커스가 있는 데이터 테이블에서만 실행합니다. |
| |
현재 데이터 테이블은 큰 클래스가 됩니다. 그 직전에 열었기 때문입니다. 좋습니다. 그러나 항상 명시하는 것이 좋습니다. 작업할 데이터 테이블을 명시적으로 지정하는 것이 좋으므로 이 방식으로 실행하겠습니다. |
| |
bctable, 이중 화살표, 배포 명령. 이것이 우리가 추가한 것입니다. 이중 화살표가 있는 bctable입니다. |
| |
그리고 이것은 메시지를 보내는 구문입니다. 따라서 오른쪽에 있는 배포 메시지를 왼쪽에 있는 bctable의 이름이 지정된 데이터 테이블로 보냅니다. bctable 위로 마우스를 가져가면 이것이 Big Class임을 알 수 있습니다. 그래서 전체를 실행하고, |
| |
우리는 분포 보고서를 얻습니다 |
| |
우리가 원했던 |
| |
이제 여기... 우리는 이것을 한 단계 더 발전시킬 수 있고 종종 이것을 해야 합니다. 실행하면서 플랫폼의 이름을 만들 것입니다. |
| |
여기에 이중 화살표와 등호를 모두 포함하는 줄이 있습니다. 좋습니다. 그래서 음...이것을 오른쪽에서 왼쪽으로 읽어봅시다. 배포 메시지를 받아 bctable로 보냅니다. |
| |
플랫폼이라는 모든 것의 결과를 distplat이라고 하는 이 변수에 저장할 것입니다. |
| |
실행해 봅시다. |
| |
똑같아 보이지만 차이점은 이제 이 JSL 변수 distplat이 있다는 것입니다. 이 변수는 나중에 내 코드에서 사용할 수 있습니다. |
| |
무엇을 위해 사용하시겠습니까? 출력에 빨간색 삼각형 옵션을 추가하는 데 사용할 수 있으므로 여기서 가져오겠습니다... |
| |
배포 보고서를 볼 수 있는 곳으로 가져갑시다. |
| |
그리고 우리는 distplat 개체를 가져갈 것입니다. 그것은 배포 플랫폼입니다. |
| |
마우스를 올려놓고 이 줄을 실행해 봅시다. 배포 플랫폼에서 일반 5분위 플롯을 켭니다. 거기는. |
| |
좋아요. |
| |
마지막 단계는 플랫폼을 가져가는 것입니다. |
| |
보고서 개체인 보고서를 가져옵니다. 바로 이 줄입니다. 보고서 메시지를 플랫폼 개체에 보내면 이제 보고서 개체를 얻습니다. |
| |
코드에서 이러한 값(보고서의 숫자, 그래프 또는 그래픽 요소)에 액세스하려면 이 작업을 수행해야 합니다. 이것이 필요합니다. 좋습니다. 이 객체 rdistplat. 그러니 한 번만 더 실행해 보세요, rdistplat. |
| |
나는 그것을 실행했고 당신은 눈에 띄는 것을 보지 못하지만 일어난 일은 이제 rdistplat이라는 객체가 있다는 것입니다. 그것은 디스플레이 상자라고 말하고 나중에 그것을 사용하여 여기 보고서에서 숫자에 액세스하는 방법에 대해 이야기할 것입니다. |
| |
알겠습니다. 로그를 지우겠습니다. |
| |
그리고 우리와 함께 시작 |
| |
사례 연구. |
| |
따라서 우리가 배울 첫 번째 기술은 데이터 테이블의 다른 열에 대해 동일한 명령을 계속해서 반복하는 것입니다. for each 명령을 사용하여 루프로 열을 반복합니다. 그래서 |
| |
이것은 매우 일반적인 요구 사항이며 때로는 열의 형식이나 모델링 유형을 변경하는 것과 같이 수행해야 하는 단순한 작업일 수도 있습니다. |
| |
다음과 같이 매우 복잡할 수 있습니다. |
| |
열을 변환하고 컨트롤 차트를 실행하고 해당 컨트롤 차트로 작업을 수행합니다. 예, 확장됩니다. 이 기술은 확장됩니다. |
| |
JSL 코드에서 이를 달성하는 방법은 다음과 같습니다. 먼저 가리키고 클릭합니다. 오른쪽으로 원하는 작업을 수행합니다. 단일 열에 대해 수행한 다음 향상된 로그를 사용하여 해당 코드를 가져옵니다. |
| |
이것이 스크립트의 뼈대입니다. 그리고 해당 작업을 수행하려는 모든 열을 반복하기 위해 이를 수정할 것입니다. |
| |
for 루핑, 반복에 사용할 방법은 JMP 16에 도입된 각각에 대한 방법이므로 이 기술은 JMP의 이전 버전에서는 작동하지 않습니다. |
| |
이것은 또한 JSL 목록이라는 개념을 사용하므로 이에 대해서도 조금 이야기하겠습니다. |
| |
좋아, 내가 시작할거야 |
| |
JMP에서는 홈 창에서 시작하겠습니다. |
| |
그리고...로그를 확인하겠습니다. 깨끗한지 확인하겠습니다. 아니요, 한 가지를 제거해야 합니다. 로그를 지워야 합니다. 자, 이제 우리가 하고 싶은 것을 가리키고 클릭해 봅시다. sc20이라는 데이터 테이블을 열겠습니다. |
| |
이 데이터 테이블은 온라인에서 찾을 수 있는 프레젠테이션 자료에서 사용할 수 있습니다. |
| |
이 데이터 테이블을 보면 ID 열이 있고 약 20개가 있습니다. |
| |
데이터 열. 여기에는 소수점 이하 자릿수가 너무 많고 정밀도가 너무 높아서 소수점 이하 두 자리에서 자르고 싶습니다. 따라서 데이터의 처음 두 소수점 이하 자릿수만 표시하도록 형식을 변경해 보겠습니다. |
| |
간단한 포인트 앤 클릭 조작입니다. 마우스 오른쪽 버튼을 클릭하고 열 정보로 이동한 다음 |
| |
그리고 표시 형식을 기본 최상에서 두 자리로 소수점을 수정하도록 변경할 것입니다. |
| |
이제 우리는 NPN1에 대해 그렇게 했습니다. 우리는 또한 그렇게 하고 싶은 19개의 다른 열이 있습니다. |
| |
이제 향상된 로그를 살펴보겠습니다. |
| |
이것이 바로 NPN1이라는 한 열의 형식을 변경하는 데 필요한 코드입니다. 그런 다음 이를 재사용하려면 빨간색 삼각형으로 이동하여 스크립트를 클립보드나 새 스크립트 창에 저장할 수 있습니다. |
| |
저는 다른 파일로 전환할 것입니다. 여기서 제가 약간의 작업을 했고 그래서 우리는 이것을 조금 더 파헤칠 수 있습니다. |
| |
좋아요. |
| |
여기 처음 두 줄...세 줄, 이것은 로그의 코드입니다. 좋습니다. 가장 먼저 할 일은 데이터 테이블을 여는 것입니다. |
| |
그리고 여러분은 제가 약간 편집했다는 것을 눈치채셨을 것입니다. 긴 경로 이름과 이 파일에 대한 긴 디렉토리 경로를 편집했습니다. |
| |
이렇게 실행하면, |
| |
JMP 데이터 테이블 sc20이 이 JSL 파일과 동일한 디렉터리에 있는 한 작동합니다. 따라서 현재 있는 동일한 디렉터리에 대한 로컬 파일 경로와 같습니다. |
| |
어쨌든 로그에서 우리는 데이터 테이블을 여는 중입니다. 그런 다음 형식 변경을 적용하여 소수점 이하 2자리 고정 소수점 10자입니다. |
| |
테이블...여기 왼쪽에 있는 열 참조는 열 주소를 지정하는 한 가지 방법입니다. 여러 가지 방법이 있지만 이것은 콜론에서 볼 수 있는 매우 일반적인 방법입니다. 콜론의 왼쪽에는 테이블 ref...ref...reference가 있고 콜론의 오른쪽에는 열 이름이 있습니다. |
| |
이것은 다시 로그에서 직접 가져온 것입니다. |
| |
JMP는 로그에서 이 방식을 사용하여 데이터 테이블을 지정합니다. 우리가 이야기한 대로 하는 것이 더 낫다고 생각합니다. 열 때 JSL 이름을 지정한 다음 앞으로 그 JSL 이름을 사용하는 것이 좋습니다. 그래서 콜론 앞의 이 사업 대신 dt로 바꿨습니다. |
| |
그래서 여기에 동일한 코드가 있습니다. 단지...조금만 수정하면 됩니다. 그리고 실행하면 올바른 효과가 나타납니다. 데이터 테이블을 열고 |
| |
형식을 소수점 이하 두 자리로 변경합니다. 알았어, 알았어, 이제 그걸 가지고 있으니, 하기가 꽤 쉬워. |
| |
다른 19개 열을 모두 변경합니다. 저기...여기에 NPN1이 있습니다. 그런 다음 그 줄을 복사하고 모든 사람을 변경하고 19번 더 쓸 수 있습니다. |
| |
물론 그것은 비효율적입니다. 그리고 프로그래밍의 가장 좋은 점 중 하나는 같은 일을 한 번 이상 할 필요가 없다는 것입니다. 19번, 20번 작성하는 대신 한 번만 작성하면 유지 관리가 더 쉬워집니다. |
| |
그 방법은 다음과 같습니다. 가장 먼저 수행할 작업은 작업하려는 모든 열의 목록을 가져오는 것입니다. |
| |
제가 목록이라고 말할 때 일반적인 종류의 목록을 의미하는 것은 아닙니다. 저는 JSL 목록에 대해 이야기하고 있으며 JSL로 프로그래밍할 때 사용하는 특정 데이터 구조에 대해 이야기하고 있습니다. |
| |
목록은 컨테이너에 포함된 몇 개의 개체이며 우리가 사용하는 방식입니다. 열 개체 목록을 만드는 세 가지 방법이 있습니다. |
| |
첫 번째 방법은 수동으로 모든 것을 입력하는 것입니다. 그래서 내가 이것을 실행한다면, |
| |
세 개의 테이블 참조...세 개의 열 참조, NPN1, PNP1, PNP2. |
| |
내 코드와 해당 CNames 변수 위로 마우스를 가져갈 때 중괄호에 유의하십시오. 중괄호와 같은 중괄호를 보면 JSL에서 목록을 다루고 있음을 알 수 있습니다. |
| |
자, 이것이 목록을 얻는 한 가지 방법입니다. 몇 가지 다른 방법에 대해 이야기해 봅시다. 이것은 궁극적으로 이 예제에서 사용할 것입니다. 이것은 |
| |
이봐, 내 현재 데이터 테이블의 모든 연속 열을 가져오라고 말하면서 여기서 dt라는 데이터 테이블로 이름을 지정합니다. 따라서 메시지 개체는 새 목록을 만듭니다. |
| |
그럼 이것을 실행해 봅시다. |
| |
이제 CNames 위로 마우스를 가져가면 이것이 우리가 원하는 것임을 알 수 있습니다. 이것이 우리가 작업하고자 하는 20개의 목록입니다. |
| |
좋습니다. 마지막으로 할 수 있는 방법은 사용자가 데이터 테이블의 열을 선택하도록 하는 것입니다. 이렇게 생겼습니다. 2개만 선택하겠습니다. IVP와 PNP4, 두 개의 열을 선택합시다. |
| |
그리고 이것을 실행하면, |
| |
데이터 테이블에서 선택한 두 열만 있는 목록을 얻습니다. |
| |
하지만 목록을 얻었으면 다음 작업은 해당 서식 지정 줄을 목록의 각 항목에 적용하는 것입니다. 이를 반복 또는 반복이라고 합니다. |
| |
그래서 여기에 옛날 방식이 있습니다. JMP에서 for 명령을 사용합니다. 이것이 JMP 16 이전에 수행한 작업이며 아직 JMP 15를 사용 중인 경우 참조할 수 있도록 여기에 넣었습니다. 하지만, |
| |
조금 복잡하고 새로운 사용자를 찾는 것이 어렵기 때문에 JMP 16에서 목록을 사용하는 경우 훨씬 더 간결하고 읽기 쉬운 작업이 가능합니다. 목록의 모든 요소에 대해 작업을 반복하려는 경우 각 명령에 대해 이것을 사용할 수 있습니다. |
| |
좋아요, 그리고 그것을 보고 그것이 무엇을 하는지 봅시다. 이것은 3개의 인수를 취합니다. 인수는 쉼표로 구분되며 오른쪽에서 왼쪽으로 가져갈 것입니다. |
| |
마지막 인수는 형식 명령입니다. 맞습니다. 형식을 적용하고 dt NPN1에 대해 수행하는 대신 하나의 열에 대해 수행하는 대신 여기에 자리 표시자를 넣고 목록 항목을 선택했습니다. 당신은 당신이 원하는 것을 선택합니다. |
| |
맞습니다. 이것은 단지 단어, 변수 이름일 뿐입니다. 당신이 선택합니다. 목록 항목을 선택했습니다. 이것이 자리 표시자이고 목록의 각 항목에 대해 실행하려는 명령입니다. 어떤 목록? 이 목록, 좋습니다. 이것이 우리 목록이고 두 번째입니다. |
| |
논쟁. 그리고 첫 번째 인수는 자리 표시자입니다. 목록에 있는 항목의 값을 유지하기 위해 해당 자리 표시자를 사용하고 있음을 알려줍니다. |
| |
중괄호 안에 있으므로 이 코드를 재사용하는 경우 이를 사용해야 합니다. |
| |
이것이 전체 모습입니다. 20줄 이상의 코드 대신 세 줄의 코드가 있고 여기에는 데이터 테이블을 여는 것이 포함됩니다. |
| |
열 이름 목록을 가져온 다음 반복합니다. 20개의 연속 열 모두에 대해 해당 작업을 반복합니다. 모든 것을 실행하기 위해, o 당신은 그것이 어떻게 생겼는지 봅니다. |
| |
그리고 있습니다. 이제 이러한 각 열 |
| |
형식에 소수점 이하 두 자리가 표시됩니다. |
| |
자, 이것은 for each를 사용하여 매우 간단한 작업을 수행하는 매우 간단한 예였습니다. |
| |
열에. |
| |
조금 더 흥미로운 예를 보여드리겠습니다. |
| |
다음은 동일한 데이터 세트에 대해 sc20에 대한 예입니다. |
| |
모든 열에 대한 컨트롤 차트를 만들고 해당 컨트롤 차트를 저널에 추가하고 전체 내용을 PDF로 저장하겠습니다. 좋습니다. 그래서 |
| |
그것은 각각에 대해 동일한 것을 사용하고 있고 처음 두 개의 인수는 같습니다. 목록 항목이 첫 번째이고 목록 이름이 두 번째입니다. 하지만 이제 세 번째 항목으로 많은 코드가 있습니다. 각각에 대한 세 번째 인수로. |
| |
그래서 우리는 간다. 이 전체 스크립트를 실행해 봅시다. |
| |
여러 관리도를 열고 실행하고 저널에 함께 기록합니다. 이제 제 데스크탑을 보면 제 report.pdf라는 것을 만들었습니다. 여기에는 컨트롤 차트가 1페이지에 있고 이들을 구분하기 위해 페이지 나누기가 포함되어 있습니다. 그래서 1페이지, 2페이지, 3페이지. |
| |
따라서 시간이 날 때에도 이 예를 볼 수 있습니다. 발표 자료에 포함되어 있습니다. |
| |
자, 이것이 우리가 이야기하고 있는 첫 번째 기술입니다. 다음 기술을 위해 로그를 지우겠습니다. |
| |
좋습니다. 보고서에서 값을 추출합니다. 이것은 JSL에서 많이 발생합니다. 일종의 분석을 수행합니다. 분포일 수도 있고 회귀일 수도 있습니다. |
| |
무언가를 얻으십시오, 거기에서 무언가를 모으십시오. 평균이나 중앙값일 수도 있습니다. 회귀 또는 P 값의 기울기 계수일 수 있습니다. |
| |
이것이 우리의 일이고 여기에서 까다로운 부분은 보고서가 계층적이고 고도로 중첩된 구조를 가지고 있다는 것입니다. 이 계층 아래로 이동하고 트리 아래로 이동하여 우리가 원하는 것을 정확히 찾기가 약간 까다로울 수 있습니다. 그래서 제가 한 가지 비법을 가르쳐 드리겠습니다. |
| |
요령은 평소와 같이 분석을 통해 가리키고 클릭한 다음 잡고 싶은 것을 |
| |
약간의 서식 변경으로 텍스트 색상을 빨간색으로 변경하겠습니다. 그런 다음 해당 스크립트를 로그에 저장하면 이를 사용하여 해당 빨간색 항목을 처리하는 방법을 학습합니다. |
| |
JSL에서. 그럼 함께 살펴보도록 하겠습니다. |
| |
다시 JMP로 돌아갑니다. |
| |
저는 Big Class, 그리운 Big Class를 열고 높이 열에서 분포를 실행하겠습니다. |
| |
좋아요, 여기 제가 무언가를 추출하고 싶은 제 분포 보고서가 있습니다. 중앙값이라고 가정해 보겠습니다. 이 경우 중앙값은 63이고 나중에 재사용할 수 있도록 JSL 변수에 넣을 것입니다. . |
| |
다음은 숫자 63을 지정하는 방법을 찾는 요령입니다. |
| |
색상이나 글꼴 또는 내가 잡고 싶은 것이 무엇이든 변경하십시오. 따라서 이것을 본 적이 없다면 이를 수행하는 방법은 알 가치가 있습니다. |
| |
속성 도구 모음에 버튼이 있는데 JMP 16의 새로운 버튼이라고 생각합니다. |
| |
따라서 이 보고서의 속성을 설정하면 됩니다. |
| |
우리는 이 나무 아래로 내려가 우리에게 필요한 것이 무엇인지 찾을 수 있습니다. 이것 좀 보세요. |
| |
번호 열 상자, 오른쪽. 보고서의 다른 부분을 클릭하면 해당하는 |
| |
표시 상자의 종류인 항목이 속성 패널에서 강조 표시됩니다. |
| |
좋아요, 그래서 우리는 이 모든 결과가 있는 이 것이 이 모든 숫자가 있는 숫자 열 상자라는 것을 볼 수 있습니다. 텍스트 색상을 빨간색으로. |
| |
그렇게. |
| |
이제 속성 패널을 닫겠습니다. |
| |
보고서가 있고 이 스크립트를 향상된 로그로 보내겠습니다. |
| |
빨간색 삼각형, 스크립트를 로그에 저장합니다. |
| |
이제 해당 로그를 봅니다. |
| |
이것이 우리가 원하는 부분입니다. 중앙값과 다른 통계의 텍스트 색상을 빨간색으로 변경하는 부분이 있는 배포 명령이 있습니다. 그럼 지금부터 조금 더 자세히 살펴보겠습니다. |
| |
자, 여기 그 코드가 있습니다... 강화된 로그의 동일한 코드입니다. 여기에 복사하고 약간 형식을 지정했기 때문에 필요한 사항에 대해 더 자세히 이야기할 수 있습니다. |
| |
그래서 우리가 이것을 한 전체 이유는 우리가 지금 해석할 이 부분을 얻기 위해서였습니다. 보내기를 사용하여 보고하고 그 내에서 발송합니다. |
| |
그리고 우리는 여기서 디스패치에 대한 네 가지 인수에 집중할 것입니다. 우리는 처음 3개가 필요하고, 네 번째 인수는 색상을 변경하는 것입니다. 그것은 우리가 관심을 갖는 것이 아닙니다. 우리는 우리가 원하는 요소인 표시 상자를 다루는 데 관심이 있습니다. 그래서 |
| |
이 첫 번째 인수는 탐색입니다. 상자를 표시하려면 아래로 이동하세요. 실제로는 윤곽선이 있는 상자입니다. 윤곽선이 있는 상자로 이동합니다. |
| |
여기. 그럼 그 보고서를 봅시다. 다시 말하지만 JMP에서 보고서에 이러한 수준의 중첩이 있다는 것을 눈치채셨을 것입니다. 맞습니다. 저는 단지... |
| |
외부 개요 상자 분포. 그 안에 개요 상자 높이가 있고, 그 안에 개요 상자 분위수가 있고, 그 분위수 안에 내가 추출해야 하는 항목이 있습니다. |
| |
그래서 그것이 나에게 말하는 것입니다. 저 나무 아래로 걸어가라고 합니다. 저는 높이와 분위수가 필요했고 그것이 우리를 위해 그것을 식별할 것입니다. |
| |
좋은. 다음 두 인수는 이것에 대해 알려줍니다. 우리가 시도하고 있는 이 요소, 우리가 빨간색으로 변했습니다. 그것은 우리에게 말해줍니다... 세 번째는 그것이 무엇인지 말합니다. 그것은 숫자 열 상자입니다. 우리는 속성에서 그것을 보았습니다. |
| |
그리고 두 번째 인수는 제목을 알려줍니다. |
| |
그 번호 열 상자의. 이것은 비어 있습니다. 이건 제목이 없고 괜찮습니다. 우리는...여전히 이 정보를 사용하여 해당 데이터를 얻을 수 있으므로 여기에 제목이 표시되는 경우도 있고 표시되지 않는 경우도 있습니다. |
| |
좋습니다. 이제 정보를 얻었으니 해당 정보를 사용하겠습니다. |
| |
중앙값을 추출합니다. |
| |
이를 수행하는 코드는 다음과 같습니다. 여기 23행에서 시작하여 29행을 통과합니다. |
| |
데이터 테이블을 다시 열겠습니다. |
| |
분포에 이름을 지정하고 연속 분포를 수행합니다. |
| |
우리는 생산 스크립트에서 빨간색으로 바꿀 필요가 없기 때문에 디스패치 및 보고서 전송이 없다는 것을 알 수 있습니다. |
| |
예, 분포 분석을 수행하고 플랫폼 이름을 지정하십시오. |
| |
이것은 중요합니다. 보고서 계층에 액세스해야 합니다. 이 행으로 추출하므로 이 보고서 개체인 rdist가 생성됩니다. |
| |
그리고 나서 이것은 마법이 일어나는 라인입니다. 이것이 우리가 그것을 잡는 곳입니다. |
| |
중간 값을 JSL 변수 mdn에 할당하고 이 값을 로그에 기록합니다. 이에 대해 조금 더 말씀드리지만 먼저 전체적으로 한 번만 실행해 보겠습니다. |
| |
23번째 줄을 실행하겠습니다. 대신 이렇게 합시다. 23행부터 29행까지 실행해 봅시다. |
| |
배포를 실시했습니다. 빨간색이 아니고 중앙값을 추출했습니다. 이제 mdn에 저장됩니다. 해당 변수의 값이 63임을 알 수 있습니다. |
| |
중앙값은 63입니다. 완벽한. |
| |
괜찮은. |
| |
여기 우리가 추출하는 라인이 있습니다. |
| |
중앙값, 보고서에서 숫자 63. |
| |
한번 봅시다. 우리가 할 수 있도록 여기로 전화하겠습니다. |
| |
우리가 하는 것처럼 이것을 참조하십시오. |
| |
여기 그 줄이 있습니다. 다시 정리해서 각 요소를 개별적으로 볼 수 있습니다. |
| |
63, 보고서의 중앙값. |
| |
여기에 우리가 그것을 얻는 방법이 있습니다. |
| |
이것을 아래첨자...subscriptinig라고 합니다. JSL 코드에서 대괄호가 표시되면 객체를 첨자화한다는 의미입니다. 그 객체는 일종의 컨테이너입니다. |
| |
종종 목록. 이런 식으로 목록을 첨자화할 수도 있습니다. 그래서 우리가 하고 있는 것은 예, 이 보고서 개체에서 중첩된 항목을 추출하는 것입니다. |
| |
가장 먼저 할 일은 높이 개요 상자입니다. 당신은 그것을 기억하고 거기에서 우리는 분위수 상자로 내려갈 것입니다. 당신은 그것을 기억합니다. |
| |
그리고 이제 우리는 올바른 위치에 있습니다. 우리는 우리가 원하는 것을 잡기만 하면 됩니다. 우리가 원하는 것은 숫자 열 상자입니다. |
| |
우리가 사용할 수 있는 제목(제목이 아니라 여기에 있던 제목) 대신 번호로 참조합니다. 분위수 개요 상자의 첫 번째 숫자 열 상자입니다. |
| |
그래서 여러분은 이것을 보고 혼잣말을 할 것입니다. 잠시만요, 여기 숫자가 있습니다. 저것도 넘버박스 맞죠? 아니요, 실제로는 그렇지 않습니다. 문자열 열 상자이고 원하는 경우 모든 항목을 확인할 수 있음을 기억하십시오. 그것은 다시 속성에서 나온 것입니다. |
| |
여기를 클릭하면 |
| |
숫자 열 상자, 문자열 열 상자, 문자열 열 상자. 여기 보여요? 문자열... 문자열 숫자이므로 첫 번째 숫자 열 상자입니다. |
| |
그리고 그것은 이 숫자들을 모두 잡을 것입니다. |
| |
좋아요, 우리가 해야 할 마지막 일은 이 첨자입니다. 이런 식으로 첨자를 쓰면 여섯 번째 원소...1, 2, 3, 4, 5, 6을 구하세요. 그것이 중앙값입니다. 63입니다. 이 줄을 실행하면 보고서에 아래 첨자가 붙습니다. 나중에 다시 사용할 수 있도록 중앙값을 가져옵니다. |
| |
보고서에서 무언가를 가져오는 방법이 있습니다. 프레젠테이션 자료에서 공유할 또 다른 예가 있습니다. |
| |
제목이 있고 볼 수 있는 요소는 해당 상황에 부딪히면 자신의 작업을 수행하기 위한 모델로 사용할 수 있습니다. |
| |
자, 마지막으로 논의할 것은 스크립트를 실행하는 사람인 사용자로부터 입력을 받는 방법입니다. |
| |
그리고 그들이 분석할 파일이나 분석할 데이터 테이블의 열을 선택하게 하십시오. 그래서 이것은 아마도 가장 일반적인 |
| |
초보 스크립터가 하고 싶어하는 것. 하나의 열에서 작업을 수행하도록 스크립트를 설정했으며 조직의 다른 사용자에게 작업을 제공하고 싶습니다. |
| |
다른 데이터에 대해 스스로 수행하도록 합니다. 따라서 사용자가 파일이나 열 또는 둘 다를 선택할 수 있도록 스크립트를 일반화하면 |
| |
스크립트를 일반화하고 있으며 그 가치를 크게 높이고 있습니다. 조직의 다른 사람들에게 제공할 것입니다. 그들은 작업을 복제하고 모든 클릭을 거치지 않고 신속하게 작업을 수행할 수 있습니다. |
| |
자, 이 섹션에서는 사례 연구라기보다는 세탁 목록에 가깝습니다. 이제...사용자가 파일을 선택할 수 있는 세 가지 방법과 열을 선택할 수 있는 두 가지 방법을 보여드리겠습니다. |
| |
그리고 파일을 선택하는 방법부터 시작하겠습니다. 여느 때처럼 로그에서 작업을 수행한 다음 복사하는 것으로 시작하겠습니다. 여기...여기에 Big Class를 열 때 보이는 모습이 있습니다. 로그에서 이것을 얻고 Big Class를 엽니다. |
| |
dt. 이 경우 dt를 사용하고 있으므로 Big Class를 열면 |
| |
이제 그것은...dt가 Big Class를 가리키고 있습니다. 그런 다음 프로덕션 스크립트를 계속 진행하겠습니다. |
| |
사용자가 원하는 파일을 선택할 수 있도록 하려면 dt가 다른 것을 가리키도록 하는 방법을 찾아야 합니다. |
| |
스크립트의 나머지 부분을 작성하고 dt를 사용한 다음 처음에 이를 변경할 수 있습니다. dt는 더 이상 Big Class를 가리키지 않습니다. 그것은 다른 것을 가리킬 것입니다. |
| |
알겠습니다. 다른 것은 사용자가 결정합니다. |
| |
스크립트를 실행하는 사람. 좋아요, 여기 당신이 할 수 있는 가장 쉬운 일이 있습니다. 제 생각에는...데이터 테이블을 여는 대신 이 줄을 사용할 수 있습니다. 스크립트 시작 부분에서 이것을 사용하여 dt를 할당하면 |
| |
이것이 의미하는 바는 JMP가 이 스크립트를 실행하고 dt를 제공한다는 것입니다. |
| |
앞에 있는 데이터 테이블에 이름을 지정합니다. |
| |
따라서 사용자 관점에서 그들이 하는 일은 데이터 테이블을 여는 것입니다. 여기에서 sc20을 열고 sc20을 만들겠습니다. |
| |
내 현재 데이터 테이블. 여기 보이시죠? 이 창에 나열된 것은 현재 데이터 테이블입니다. |
| |
따라서 사용자가 데이터 테이블을 열고 스크립트를 실행한 다음 이 줄을 만나면 dt는 이제 sc20을 가리킵니다. |
| |
이것은 매우 강력한 방법입니다. 문제는... 사용자가 무엇을 해야 하는지 정확히 알아야 한다는 것입니다. 먼저 데이터 파일을 연 다음 스크립트를 실행해야 한다는 것을 알아야 합니다. |
| |
우리는 조금 더 강력한 것을 할 수 있습니다. 스크립트를 실행할 때 파일 선택기를 표시하여 디렉토리 구조를 탐색하고 열 올바른 파일을 찾을 수 있도록 할 수 있습니다. |
| |
이것은 매우 간단하다는 것이 밝혀졌습니다. 당신이 할 일은 여기에 있는 모든 것을 제거하고, Big Class에 대한 참조를 제거하고, 전혀 논쟁 없이 open이라고 말하는 것입니다. |
| |
그리고 JSL이 시도할 때...JMP가 이 줄을 해석하려고 시도할 때 사용자가 무언가를 열기를 원하지만 무엇을 해야할지 모르겠습니다...무엇을 모르겠습니다. 그들이 결정할 수 있도록 파일 선택기를 보여줍시다. |
| |
자... 실행해 봅시다. dt = 열다. |
| |
스크립트를 실행합니다. 여기 일반 파일 선택기가 있고 데스크탑에서 Iris를 열겠습니다. |
| |
아이리스는 열려있고, 당연히 dt라는 이름을 가지고 있습니다. |
| |
모든 JMP 파일, 모든 파일, 맞습니다. 여기에 많은 것을 보여줄 수 있습니다. |
| |
따라서 더 많은 제어가 필요한 경우, 죄송합니다. 더 많은 제어가 필요한 경우 |
| |
사용자가 선택을 할 때 open을 사용하는 대신 pick file이라는 것을 사용합니다. |
| |
파일 선택은 몇 가지 다른 옵션이 있는 명령입니다. 3개만 사용하고 있습니다. |
| |
이 예제를 살펴보겠습니다. 따라서 pick file의 처음 세 인수는 선택기 창에 표시되는 제목입니다. |
| |
선택기가 시작될 디렉토리와 해당 선택기에서 열 수 있는 파일을 알려주는 필터입니다. 이제 이...이 줄, 이 코드 섹션, 파일 선택 명령을 실행하고 결과를 PF에 저장합니다. |
| |
그것을 실행하십시오. |
| |
좋아, 그게 여기 있는 논쟁이라는 걸 알아둬, 엑셀 파일을 선택해. 이것이 바로 여기 창 제목에서 볼 수 있는 것입니다. |
| |
두 번째 인수의 경로인 폴더가 시작되는 위치입니다. |
| |
그리고 세 번째 비트는 "이봐, 사용자가 열 수 있는 엑셀 파일만 보여줘"라고 말하는 파일 필터는 여기 아래에 있습니다. Excel 파일에서 변경할 수 없습니다. 저는 엑셀 파일로 제한되어 있습니다. |
| |
샌드위치라고 하고 열기를 클릭해 봅시다. |
| |
글쎄, 잠깐만, 왜 열리지 않았어? |
| |
자, 확인해 봅시다. PF는 파일 선택과 같습니다. PF가 무엇인가요? 아, PF는 우리가 열고자 하는 것에 대한 경로입니다. 우리는 아직 열기 명령을 내리지 않았습니다. 파일 선택은 파일을 여는 것이 아니라 파일을 선택하기만 합니다. |
| |
따라서 원을 닫기 위해 우리가 해야 할 일은 다음과 같습니다. 다음을 열어 테이블 참조를 생성합니다. |
| |
우리가 원하는 파일, 우리가 원하는 엑셀 파일을 가리키는 PF 변수. |
| |
거기는. 그러면 샌드위치 데이터 테이블이 열리며 이제 dt가 있고 원했던 대로 스크립트를 사용할 준비가 되었습니다. |
| |
중요한 것을 보여드리기 위해 여기서 잠시 멈추겠습니다. 파일을 선택하십시오. 이와 같은 것을 접하고 모든 주장을 알지 못하고 몇 가지 더 배우고 싶다면 파일을 선택하십시오. 우선 조금 받고 |
| |
풍선 도움말, 구문에 대한 정보가 있는 작은 팝업. 더 나은 옵션이 있습니다. 스크립트 창에서 마우스 오른쪽 버튼을 클릭하고 |
| |
스크립팅 인덱스에서 찾아볼 수 있습니다. 스크립팅 인덱스는 모든 JSL 프로그래머에게 매우 중요한 도구이며, |
| |
찾고 있는 명령이 있습니다. 여기에는 인수 목록, 일부 설명 텍스트가 있으며 실제로 중요한 것은 실행하고 수행할 수 있는 몇 가지 예가 있다는 것입니다. 따라서 여기에서 이 예제를 실행하면 선택 파일이 제공됩니다. |
| |
글쎄, 그것은 내가 가고 싶지 않은 곳으로 나를 보냈습니다. |
| |
그냥 닫자. |
| |
그렇다면 우리는 이 코드를 실험하고 잡아서 이 코드를 훔쳐 우리의 스크립트에서 사용할 수 있습니다. 우리가 원한다면. |
| |
자, 이것이 스크립팅 색인입니다. 도움말 메뉴에서도 사용할 수 있습니다. 스크립팅 메뉴...위 내용을 보십시오. |
| |
현재 데이터 테이블, 네이키드 오픈 또는 파일 선택. 다른 방법도 있지만 시작하기에 좋은 세 가지 방법입니다. |
| |
이제 사용자가 작업할 열을 선택할 수 있도록 하는 방법에 대해 이야기해 보겠습니다. |
| |
여기 있습니다...일지에서 복사한 것이 있습니다. 가격이라는 데이터 테이블을 열었습니다. 시간 경과에 따른 사과 가격을 보여주는 그래프를 그 위에 만들었습니다. |
| |
포인트 앤 클릭 부분을 보여드리지 않고 스크립트를 실행하겠습니다. 향상된 로그에서 스크립트를 추출하는 방법을 이미 알고 있다고 생각하므로 스크립트가 수행하는 작업을 살펴보겠습니다. 가격을 열면 내 그래프, 사과 대 날짜, 시간 경과에 따른 사과 가격이 있습니다. |
| |
이 데이터 테이블, 가격을 보세요. 네, 사과가 있습니다. 하지만 저에게도 이 모든 것들이 있습니다. 따라서 사용자가 보고 싶은 그래프와 보고 싶은 열을 그래프로 표시하도록 하려면 어떻게 해야 합니까? |
| |
이것이 바로 이 섹션에서 사용자가 선택할 수 있도록 하는 것입니다. |
| |
좋아요. |
| |
그래서 우리는 두 가지 방법에 대해 논의할 것입니다. 여기 첫 번째가 있습니다. |
| |
사용자가 선택한 열에서 작동하는 것입니다. |
| |
그리고 우리는 이전에 이것을 본 적이 있습니다. 제 생각에는 두 번째 사례 연구에서 이 구문을 더 일찍 본 것 같습니다. 예, 이것이 우리가 목록을 만드는 방법입니다 |
| |
데이터 테이블에서 선택된 열을 포함하는 데이터 테이블로 돌아가 보겠습니다. |
| |
세 개의 열을 선택하고 |
| |
뛰자 |
| |
이것. 사실 dt를 실행해야 한다고 생각합니다. 이 두 가지를 모두 실행해 보겠습니다. |
| |
닭고기, 커피, 계란. |
| |
괜찮은. |
| |
그래서. |
| |
어느 것을 수술하고 싶습니까? 루프를 사용하여 목록을 반복하는 방법을 알고 있지만 우리는 그렇게 하지 않습니다. 바로 가기를 사용하겠습니다. 보라 하겠다, |
| |
사용자가 둘 이상을 선택한 경우 첫 번째 항목만 그래프로 표시합니다. 그래서 내 사용자는 스크립트를 실행하기 전에 닭고기, 커피, 계란을 선택했습니다. 나는 그들에게 닭고기에 대한 그래프를 제공하고 싶습니다. |
| |
자, 여기 다음 줄이 있습니다. 우리의 첨자가 있습니다. 첫 번째 항목을 얻기 위해 CNames 목록을 첨자합니다. |
| |
그래서 우리는 이것을 실행할 것입니다. |
| |
이제 멋진 변수인 my col이 있습니다. |
| |
목록의 첫 번째 항목인 chicken, 콜론이 있는 열 참조가 있습니다. |
| |
이제 그래프 빌더를 실행할 수 있습니다. 이제 우리는 우리의 삶을 계속할 수 있습니다. 유일한 차이점은 여기 위의 사과를 대체했다는 것입니다. |
| |
그것은 이제 내 열입니다. 이것이 우리가 만든 유일한 변경이므로 이것을 실행하면 닭고기 가격 그래프를 얻을 수 있습니다. |
| |
좋은. |
| |
좋아요, 그게 한 가지 방법입니다. 하지만 이전에 이야기한 것처럼 사용자가 자신이 해야 할 일을 알고 있어야 합니다. 이를 위해서는... |
| |
방법을 사용하려면 사용자가 데이터 테이블을 열고 이 테이블을 선택한 다음 스크립트를 실행해야 한다는 사실을 알아야 합니다. 이는 다소 번거롭습니다. 그래서 |
| |
대신 런타임 시 사용자에게 열 선택 대화 상자를 표시하는 것이 조금 더 강력합니다. 그 모습은 다음과 같습니다. 구문이 약간 복잡합니다. 나는 그것에 대해 높은 수준에서 이야기하면서 모든 세부 사항에 들어가지 않을 것입니다. 이전과 마찬가지로 데이터 테이블을 엽니다. |
| |
column dialog라는 명령을 사용하고 있습니다. |
| |
선택기...열 선택기를 사용자에게 표시합니다. |
| |
다시 말하지만, 그것은 많은 논거를 가지고 있습니다. 한두개만 사용중입니다. 내가 하고 있는 것은 상품 선택이라는 버튼을 주면 사용자가 최대로 하나의 열을 선택할 수 있고 적어도 하나를 선택해야 한다는 것입니다. |
| |
여기에서 60행부터 이 스크립트를 실행해 봅시다. |
| |
시작 가격, 여기 내 대화가 있습니다. 아주 작은 코드에 대해 얼마나 풍부한 대화가 있는지 살펴보십시오. 이것이 바로 우리가 사용하는 칼럼 대화의 장점입니다. 커피를 선택하고 확인을 클릭합니다. |
| |
좋은. 스크립트로 돌아가서 방금 이 줄을 실행했습니다. |
| |
그리고 우리가 선택한 결과는 dlg에 저장됩니다. 한번 살펴보겠습니다. |
| |
약간 복잡합니다. dlg is is a list, 중괄호 참조, 일부 중첩 중괄호가 있으므로 중첩 목록과 같습니다. |
| |
여기에 당신을 데려다주는 첨자가 있습니다. 이것을 설명하는 데 많은 시간을 할애하지는 않겠지만, 이 코드를 복사해야 한다면...이 작업을 수행해야 합니다. 따라서 대화에서 커피라는 부분과 커피에 대한 열 참조를 얻으려면 |
| |
여기에 내 열을 만드는 첨자가 있으므로 이 줄을 실행합니다. |
| |
이제 내 열에는 커피 열에 대한 참조만 포함되며 이는 이전과 동일합니다. 다음을 사용하여 그래프 빌더를 실행합니다. |
| |
my col, 사과를 대신하여 커피 또는 사용자가 선택한 다른 것을 얻습니다. |
| |
좋아요, 그게 제가 여러분과 공유하고 싶었던 전부입니다. JSL 프로그래밍을 이런 식으로 시작하는 모든 사람을 위한 약간의 조언으로 마무리하겠습니다. |
| |
조언은 JMP가 코드를 최대한 많이 수정하도록 하는 것입니다. 이것이 바로 향상된 로그의 목적이며 로그에서 해당 코드를 훔치는 것입니다. 그게 대부분의 스크립트입니다. |
| |
그런 다음 연결 조직을 작성하기만 하면 됩니다. 이 부분은 서로 결합하여 사용 가능한 프로덕션 스크립트로 만듭니다. 그 코드도 훔칠 수 있습니다. 당신은 스크립팅 색인에서 그것을 훔칠 것입니다. 당신은 확실히 이 프레젠테이션에서 훔칠 수 있습니다. |
| |
모든 자료는 이 프레젠테이션과 함께 제공되며 JMP 사용자 커뮤니티의 JSL 요리책에서 훔칠 수도 있습니다. JMP 사용자 커뮤니티는 일반적인 JSL 작업이 많고 이러한 작업을 수행하는 데 필요한 코드를 제공하는 환상적인 리소스입니다. |
| |
그리고 다시 한 번 강조하지만 구문에 너무 신경쓰지 마세요. 코드를 잡고 필요한 것을 대체하는 것이 더 쉽습니다. 아무 것도 깨뜨리지 않을 것이며 더 많은 경험을 통해 이 구문의 미묘함을 배우게 될 것입니다. |
| |
많은 관심 부탁드립니다. |