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