Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.응답 버튼(빨간색 삼각형)을 친구로 만드세요. 스크립팅의 기본에 대한 시리즈에 다시 오신 것을 환영합니다. JMP . 의 세 번째 항목입니다. 시리즈 그것은 당신이 함께 일할 수 있도록 구성되어 있습니다. 방금 우리와 함께하신다면 아마도 시리즈의 이전 항목을 살펴보고 싶을 것입니다. 다음은 이에 대한 몇 가지 링크입니다.
보세요. 앞으로 일어날 일에 도움이 될 것입니다.
좋아, 버클을 채워라. 지금까지 우리는 실제로 어떤 코드로도 작업하지 않았습니다(JSL 스크립팅 인덱스를 계산하지 않는 한). 오늘은 그걸로 끝입니다. 오늘은 JSL 스크립트 창을 사용해 보겠습니다. 나는 그것이 여러분 중 일부에게 불안을 유발할 수 있다는 것을 알고 있습니다. 심호흡을 하고 시작해 보겠습니다.
스크립팅을 위해 스크립팅하지 마세요!
솔직히 말해서 코딩은 단기적으로 효율적인 프로세스가 아닙니다. 일회성 분석 및 그래픽의 경우 끌어서 놓기 도구는 거의 항상 ROI 측면에서 코딩을 능가합니다(개발 작업을 수행하는 데 드는 비용은 너무 큽니다). GUI 솔루션이 더 빠른지 여부에 관계없이 스크립팅을 고집하는 사람들이 있습니다. 이유는 모르겠지만 나는 그 번호에 없습니다. GUI를 사용하면 나중에 오류가 발생할 가능성이 커질 만큼 작업 흐름이 어렵거나 우회적일 때 코딩을 고려할 것입니다. 또한 어떤 일을 반복해서 수행할 때 코딩을 고려할 것이며 자동화를 통해 얻은 효율성을 통해 시간을 정당화할 수 있습니다. 그렇다고 내가 뭔가를 할 수 있는지 알아보기 위해 코딩을 하지 않는다는 말은 아닙니다. 아니면 단지 새로운 것을 배우기 위해 더 복잡한 코딩 방식을 선택하지 않는다는 것입니다. 그러나 그러한 경우는 규칙이 아니라 예외입니다.
이제 나는 아마도 그 일반화로 몇몇 사람들의 코를 비틀었을 것입니다. 이런 종류의 포괄적인 진술의 문제점은 그것이 매우 흑백이라는 것입니다. 인생의 모든 것과 마찬가지로 진실은 포인트 앤 클릭 솔루션과 코딩 사이에 가치 제안이 뒤섞인 회색 영역이 있다는 것입니다. 회색 영역은 대부분의 야심 찬 코더가 찾는 곳이기도 합니다. 그들은 스크립팅을 통해 효율성을 어느 정도 얻을 수 있다는 것을 알고 있지만 어디서부터 시작해야 할지 모르거나 초기 학습 노력에 낭비되는 시간이 너무 클 것을 걱정합니다. JMP 설계의 좋은 점은 JSL을 조작할 때 효율성을 크게 잃지 않으면서 작업 흐름에 JSL을 도입하는 데 사용할 수 있는 도구를 제공한다는 것입니다. 그리고 JMP의 모든 기능과 마찬가지로 JMP도 다음과 같이 시작됩니다. JMP 작업 흐름 .
JMP 작업 흐름(스크립팅 버전)
JMP 작업 흐름은 일반적으로 사용자가 질문에 답하기 위해 빨간색 삼각형 메뉴로 이동하는 것으로 끝납니다. 빨간색 삼각형 메뉴의 또 다른 기능은 사용자에게 작업을 저장할 수 있는 방법(스크립트 저장)을 제공하는 것입니다.

스크립트를 저장하는 세 가지 주요 방법은 다음과 같습니다.
- 데이터 테이블로 : 이 방법은 스크립트를 "테이블 스크립트"로 데이터 테이블에 저장합니다.이러한 스크립트는 JMP에서 특정 보고서를 생성하는 데 사용되는 방법을 저장하고 이식 가능합니다(즉, 동일한 열 이름을 가진 데이터 테이블 간에 복사하여 붙여 넣을 수 있음).
- 스크립트 창으로 : 이 방법은 특정 보고서를 재현하는 데 필요한 정보를 스크립트 창에 저장합니다. 다단계 작업이나 여러 보고서 생성에 유용합니다. 스크립트 창의 내용을 테이블 스크립트로 변환할 수도 있습니다.
- 클립보드로 : 이 방법은 보고서에 필요한 코드를 다른 JMP 플랫폼(예: Query Builder, Application Builder 등)으로 이동하거나 대규모 프로젝트를 위한 프로토타입 코드를 생성하는 데 유용합니다.
정말 효율적인 코더는 코딩 세션 중에 이러한 빨간색 삼각형 옵션을 광범위하게 활용하는 것으로 나타났습니다. 그들은 이를 사용하여 코딩 속도를 높이거나(필요하지도 않은데 왜 키를 두드리는가?), 엉망이 되기 쉽고 디버그하기 어려운 플랫폼 프로토타입 코드를 생성합니다. 초보 코더에게 이러한 옵션은 JSL 작업의 세부 사항을 쉽게 익히면서 JSL에 대해 배우고 활용할 수 있는 다양한 기회를 제공합니다. 이것이 우리가 코딩 모험을 시작하고 싶은 곳입니다.
스크립트 저장 > 데이터 테이블에
뉴욕이나 뉴저지 지역의 JMP 사용자라면 안녕하세요! 나는 아마 어느 시점에 당신 회사를 방문한 적이 있을 것입니다. (그렇지 않다면 저에게 PM을 보내주세요. 우리는 그것을 고쳐야 합니다.) 그리고 제가 현장에 왔을 때 여러분은 아마도 제가 다음과 같은 점에 대해 하프 소리를 하는 것을 들었을 것입니다. 작업을 저장해야 합니다. "작업을 저장"한다는 것은 다음을 사용한다는 의미입니다. 스크립트 저장...데이터 테이블에 빨간색 삼각형 메뉴 아래의 옵션입니다. 워크플로 자동화에 대한 첫 번째 경험으로 돌아가서, 이것이 제가 시작한 방법입니다. 표준화된 그래프 빌더 보고서를 정기적으로 업데이트할 JMP 테이블에 저장하는 것이었습니다. 나는 이 작은 팁의 힘을 충분히 강조할 수 없습니다. 그것은 Dr. Who의 Sonic Screwdriver를 갖는 것과 같습니다. 가능성은 무한합니다.
간단한 예를 살펴보겠습니다.
- 열려 있는 도움말 > 샘플 데이터 라이브러리 > Big Class Families.jmp
- 배포 대화 상자를 엽니다. 분석 > 분포
- 나이, 성별, 키, 몸무게를 입력하세요. Y, 열을 클릭하고 좋아요 .

- 분포 빨간색 삼각형 메뉴에서 다음을 선택합니다. 스크립트 저장 > 데이터 테이블에

- 이름을 지정하십시오(또는 기본값을 사용하십시오). 이 경우 기본값을 사용하면 데이터 테이블에 다음과 같이 표시됩니다. 분포 2 왜냐하면 이미 분포 데이터 테이블의 스크립트.

- 이제 왼쪽 상단에 있는 데이터 테이블을 다시 살펴보세요. 옆에 녹색 확인 표시가 있는 목록에서 테이블 스크립트를 볼 수 있습니다.

이 시리즈의 맥락에서 이러한 테이블 스크립트는 작은 애플릿(미니 애플리케이션) 또는 매크로로 간주될 수 있습니다. 데이터 테이블 간에 직접 이식 가능합니다(복사하여 붙여넣기만 하면 됩니다). 스크립트에 사용된 열 이름이 동일하다면 . 편집할 수도 있습니다(하나를 마우스 오른쪽 버튼으로 클릭하고 편집하다 ). 따라서 스크립트에서 열 이름을 편집하려는 경우 동일한 열 이름이 없는 데이터 테이블로 이식할 수도 있습니다. 이는 큰 문제가 아닙니다. 그 방법은 다음 포스팅에서 다루겠습니다. 테이블 스크립트를 사용하면 더 작은 스크립트를 문자열로 묶어 더 큰 작업 흐름을 자동화할 수도 있습니다. 이에 대해서는 다음 포스팅에서도 다루도록 하겠습니다.
스크립트 저장 > 클립보드로
빨간색 삼각형 메뉴의 마지막 항목을 다루겠습니다. 클립보드에 안건. 항목이 다음 항목과 동일하기 때문에 이 항목을 다음에 다루겠습니다. 스크립트 창으로 옵션이지만 훨씬 덜 유익합니다. 그것은 유용하지 않다는 것이 아니라 무슨 일이 일어나고 있는지 볼 수 없다는 것입니다. 시간 관계상 다음과 같습니다. 다음에서 생성된 코드를 사용합니다. 스크립트 저장...데이터 테이블에 다른 스크립트 어딘가에 넣을 수 있도록 클립보드에 넣습니다. 편리합니다. 그리고 스크립팅 기술이 향상되면 그것이 어디에 유용한지 알게 될 것입니다. 지금은 더 흥미롭고 유용한 옵션인 스크립트 창에 저장하는 방법으로 백업하고 싶습니다.
스크립트 저장 > 스크립트 창으로
다음 항목은 스크립트를 다음에 저장… 빨간색 삼각형 메뉴에서 제가 논의하고 있는 세 가지 메뉴 중 아마도 가장 유익한 내용을 다룰 것입니다. 스크립트 창에 스크립트를 저장하면 말 그대로 스크립트 편집기 창이 생성되고(다음 에피소드에서 스크립트 편집기에 대해 더 자세히 설명하겠습니다) JMP 생성 JSL로 채워서 스크립트에 있던 모든 내용을 다시 생성합니다. 당신이 일하고 있던 창. 이 항목에서 중요한 점은 코드를 연구하고 JMP가 생성한 내용을 통해 배울 수 있다는 것입니다.
다시 Big Class를 사용한 간단한 예를 살펴보겠습니다. 분석을 다시 실행하려면 저장된 스크립트 옆에 있는 녹색 버튼을 클릭하세요. 그런 다음 보고서 창에서 스크립트 저장 > 스크립트 창으로 빨간색 삼각형 메뉴에서 이제 스크립트 창에 JMP가 작성한 내용을 살펴보세요.

JMP는 분포 보고서(Distribution(…);)를 만들었습니다. JMP는 두 개의 명목 분포 하위 그룹인 명목 분포(열(…))와 두 개의 연속 분포 하위 그룹인 연속 분포(열(…))를 보고서에 넣었습니다. JMP는 스크립트 끝에 매우 중요한 코드인 ";"를 삽입했습니다. 이는 "Glue Operator"라고 하며 다음 에피소드에서 더 자세히 다루겠습니다. 지금은 JMP가 코드를 실행할 때 다른 명령이 올 것이라는 신호를 JMP에 보내는 방법이라는 점만 알아두면 됩니다. JMP가 이 작업을 자동으로 처리해 준다는 사실은 초보 스크립터의 삶을 훨씬 덜 복잡하게 만듭니다.
이 항목을 매우 유용하게 만드는 마지막 요점은 해당 스크립트 창을 열어두면 어떤 일이 발생하는지입니다. 배포 플랫폼을 닫고 스크립트 편집기는 열어두세요. 이제 공개 데이터 테이블을 사용하여 신장을 X 변수로, 체중을 Y 변수로 사용하여 Fit Y by X 보고서(분석 아래)를 만듭니다.

다음으로 선택하세요. 스크립트를 스크립트에 저장 창 다시.

창이 다른 항목으로 어떻게 업데이트되었는지 확인하셨나요? 이제 실행 방법을 알고 나면 해당 스크립트는 방금 작업 중이던 두 개의 창을 다시 생성합니다. 말하자면…
스크립트 실행
이제 스크립트 창에 코드가 있습니다. 이제 어떻게 될까요? 아마도 자신이 만든 코드를 실행할 수 있기를 원할 것입니다. 내 말은, 책상 옆을 지나가는 사람들에게 깊은 인상을 주기 위해 그냥 놔둘 수도 있지만 실행하는 것이 더 나을 수도 있다는 것입니다. JMP에서 코드를 실행하는 방법에는 기본 메뉴, 키보드 단축키, 스크립팅 창 상단의 도구 모음, Enter 키, 마우스 오른쪽 버튼 클릭 등 몇 가지 방법이 있습니다. 각 항목을 빠르게 살펴보겠습니다.
메인 메뉴 및 키보드 단축키
그만큼 스크립트 실행 명령은 Windows와 MacOS에서 같은 위치에 있습니다. 스크립팅 창에 있는 경우 아래로 이동하세요. 편집 > 스크립트 실행 . 이에 대한 단축키는 Ctrl+R 창문용 및 명령+R MacOS용.
스크립팅 창 상단의 도구 모음 버튼
스크립트 창 상단을 보면 스크립트 실행 버튼을 클릭하세요(도구 모음을 숨긴 경우 제외). Windows에서는 테이블 스크립트의 버튼과 비슷한 작은 녹색 재생 버튼처럼 보입니다. MacOS에서는 JMP Man과 녹색 재생 버튼이 있는 작은 JSL 문서처럼 보입니다.
Enter 키 사용
여기서는 확장 키보드의 숫자 패드 오른쪽 하단에 있는 버튼을 의미합니다. 해당 버튼을 누르면 JMP는 커서가 위치한 JSL 라인을 실행합니다. 나는 JSL 디버거에 익숙해지기 전에 이것을 많이 사용했습니다.
마우스 오른쪽 버튼 클릭
일부 코드를 선택하고 마우스 오른쪽 버튼을 클릭하면 다음과 같은 상황에 맞는 메뉴가 나타납니다. 스크립트 실행 옵션을 아래쪽으로 향하게 합니다.
다양한 형태의 스크립트 실행을 시도해 보고 가장 마음에 드는 것을 찾는 것이 좋습니다. 나는 툴바 옵션을 사용하는 것을 선호하는 Application Builder에 있을 때를 제외하고는 단축키를 사용하는 편입니다. 시간이 지남에 따라 당신은 아마도 당신이 가장 좋아하는 한두 가지에 끌리게 될 것입니다. 또한 참고 사항: 이러한 옵션은 모두 선택한 코드 섹션이 있는지, 커서가 줄 끝에 있는지, 커서가 빈 줄에 있는지에 따라 약간 다른 작업을 수행합니다. 그래서 당신도 그것에 대해 조금 실험하고 싶을 수도 있습니다.
이번주 마무리
좋아, 믿거나 말거나, 이제 JSL을 사용하여 미친 듯이 위험해질 수 있는 충분한 정보를 얻었습니다. 물론 좋은 의미에서 말이죠. 무슨 뜻인지 보여드리겠습니다.
오늘 만든 스크립트를 사용해 보겠습니다. New Window();를 래핑하여 약간의 수정을 가하겠습니다. 분포를 중심으로 한 함수와 JMP가 만든 이변량 함수입니다. 새 창(…)에 대해 자세히 알아볼 수 있습니다. 스크립팅 인덱스에 있습니다. New Window(…)의 첫 번째 부분에 주목하세요. 1행에서 시작해서 마지막 부분은 10행입니다! 나는 그것들이 어디에 있는지 볼 수 있도록 그것들을 연결하는 멋진 작은 선을 그릴 수 있도록 스크립트 편집기를 설정했습니다(자세한 내용은 나중에 설명).

그런 다음 해당 스크립트의 텍스트를 복사하고 데이터 테이블로 돌아가겠습니다. 선택하다 새 스크립트 데이터 테이블의 왼쪽 상단에 있는 빨간색 삼각형 메뉴에서

스크립트 텍스트를 대화 상자에 붙여넣고 유용한 이름을 지정한 다음 좋아요 .

계속 진행 중이라면 데이터 테이블의 스크립트 영역에 보고서가 표시되어야 합니다. 실행하면 다음과 같은 결과가 나타납니다.

이것이 제가 이틀 간의 분석 마라톤을 자르고 붙이는 15분 연습으로 바꾸는 데 사용한 작은 비결입니다. 저는 쉽게 업데이트할 수 있는 JMP 데이터 테이블에 데이터를 가져오는 데 약간의 시간을 보냈습니다. 그런 다음 해당 보고서에 필요한 모든 그래프를 다음을 사용하여 단일 JSL 창으로 내보냈습니다. 스크립트를 스크립트에 저장 창 . 나는 그것들을 새 창에 포장하여(모두 한 곳에 있도록) 해당 스크립트를 데이터 테이블의 테이블 스크립트에 넣었습니다. 나는 JSL로 일하고 있었나요? 예. 내가 많은 코드를 작성했는가? 아니요. 효율성이 높아졌나요? 분명히.
이제 실제 코딩에 들어가므로 이 마지막 사항을 강조해야 합니다. 코딩은 당신의 능력을 키우는 것입니다. 능률 :
- 문제를 얼마나 효율적으로 해결할 수 있습니까?
- 얼마나 효율적으로 보고서를 작성할 수 있습니까(그래서 다시 문제 해결에 착수할 수 있습니까?)
- 데이터를 얼마나 효율적으로 사용할 수 있습니까?
이 시리즈에서 만들려는 코드는 컴퓨터에서 생성되거나 간단합니다. 그리고 괜찮습니다. 그것은 관하여 효율적인 코드가 아니다 섹시한 암호. 제가 대학에 다닐 때 교수님 중 한 분(동료 음악가)이 사무실 바깥 벽에 다음과 같은 문구를 남겼습니다. 단순한 음악은 복잡한 음악보다 나을 수도 없고 나쁠 수도 없습니다. 코드도 마찬가지입니다. 얼마전 나에게 코딩을 가르쳐준 분이 이런 말을 하더군요. 따라서 기억하세요: 단순한 코드는 복잡한 코드보다 나을 수도 없고 나쁠 수도 없습니다. 중요한 것은 그것이 의도한 목적을 충족하고 그것을 사용하는 사람들의 효율성이나 생산성을 높이는 것입니다.
숙제
이번 주 연습에서는 문제 설명을 다시 살펴보겠습니다. 여러분이 만든 펀치 리스트를 생각해 보고 오늘 다룬 워크플로를 사용하여 코드를 생성하세요. 코드는 사용할 실제 코드일 수도 있고 문제 설명에 답하기 위해 약간 수정해야 할 프로토타입 코드일 수도 있습니다. 빨간색 삼각형 메뉴를 사용하여 필요하다고 생각되는 부분을 최대한 많이 생성하고 .jsl 파일로 저장해 보세요. 막히거나 JMP에서 필요한 코드를 생성하는 방법을 찾을 수 없는 경우 커뮤니티나 여기 댓글을 통해 도움을 요청하세요. 도움말을 검색하고 커뮤니티도 검색할 수 있다는 사실을 잊지 마세요!
다음 시간까지 행운을 빕니다. 행복한 코딩이 되시길 바랍니다!
안녕 마이크,
나는 이것이 얼마나 멋진 블로그 시리즈인지 말하고 싶었습니다! 저는 상대적으로 경험이 많지만 독학으로 코딩을 배운 사람입니다. 이 기사를 읽으면 제가 수년 동안 힘들게 배운 많은 핵심 사항이 강화됩니다. 왜 20년 전에 이 글을 써서 내 모든 고통을 덜어줄 수 없었나요?
하지만 진심으로 감사드립니다. 항상 JMP를 사용하면서 소프트웨어를 사용할 때마다 새로운 것을 배우는데, 오늘 제가 알려드릴 새로운 비결은 숫자 패드의 Enter 키를 사용하여 코드를 실행하는 것입니다. 누가 알았겠어요?!?
정말 감사합니다.
앤드류