RTFM의 경우 일 수 있지만 질문이 있습니다.
내 JMP 데이터 세트 중 하나에서 함수를 여러 수식 열의 중간으로 사용합니다. 동일한 코드의 중복 (및 해당 기능을 변경해야하는 경우 작업의 중복)을 방지하기 위해 함수를 스크립트에 넣고 데이터 테이블에 저장했습니다.
데이터 세트를 열고 데이터를 추가하려고 할 때 문제가 발생합니다. 수식 열을 올바르게 실행하려면 먼저 수식 옆에있는 녹색 화살표를 눌러 수식 열을 먼저 실행해야합니다. 스크립트가 실행되지 않으면 기능이 정의되지 않은 것입니다.
데이터 파일을 열 때 자동으로 실행되는 테이블 변수와 유사한 형태로 이와 같은 기능을 수행하는 방법이 있습니까?
편집 : 예제 파일을 첨부했습니다. 스크립트는 유틸리티 함수 스크립트에 있습니다.
OnOpen 스크립트가 귀하의 요구를 충족시키는 지 확인하십시오. 기본적으로 프롬프트가 표시됩니다. 필요한 경우 환경 설정을 변경할 수 있습니다. 다음 스크립트가 실행될 때는 OnOpen 스크립트가 실행되지 않지만 빈 테이블을 저장하고 닫은 후 다시 열면 스크립트가 실행됩니다. 그런 다음 새로 열린 테이블에 행을 추가하면 전역 함수를 사용할 수 있습니다.
New Table( "globalFunctionOnOpen",
Add Rows( 0 ),
New Script( "OnOpen", global:myFunc = Function( {a, b}, a + b ) ),
New Column( "x", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "y", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [] ) ),
New Column( "z", Numeric, "Continuous", Format( "Best", 12 ), Formula( global:myfunc( :x, :y ) ), Set Selected )
) rob ,
다음은 고려해야 할 몇 가지 옵션입니다. 최선의 선택은 사용법에 따라 다릅니다.
- 리 팩터 : 이 예제에서는 간단한 유틸리티 기능을 MTD라고 부르는 열로 수행 할 수 있습니다. 이 함수는 1 또는 0을 반환합니다. 그런 다음 함수를 변경하십시오. yearToDate (: month, : Elec Cost)를 : MTD * : ElecCost로 변경하십시오. 즉, 가능하면 열 함수를 사용하십시오.
- 추가 기능 만들기 : UpdateMyTablename이라는 테이블 전용 또는 RunUtiltyFunc라는 모든 유틸리티 기능을 실행하는 스크립트. 추가 기능은 다른 사용자가 공유하고 사용할 수 있으며 요청시 실행할 수 있으며 전역을 삭제하지 않으면 전체 세션을 사용할 수 있습니다.
- 시작 스크립트 생성 : 자주 사용하는 유틸리티 기능 세트가있는 경우 시작 스크립트를 통해 해당 기능을 정의 / 포함 / 실행할 수 있습니다. 내가 사용한 예는 다음과 같습니다. 회사 제조 관련 교대 정의, 주중 근무 기능, 로고 또는 일반적으로 사용되는 수학 함수. 로부터 JMP 스크립팅 안내서> 응용 프로그램 만들기 > 애드 인
시작 및 종료 스크립트 지정 (선택 사항)
시작 스크립트 탭을 클릭하여 JMP가 시작될 때 실행되는 스크립트 및 추가 기능을 추가하십시오.
시작). 기존 스크립트를 선택하거나 (이 파일에서 JSL 실행) 스크립트에 복사하여 붙여 넣기 (실행
이 JSL). 예를 들어 추가 기능이 사용자에게 있음을 알리는 메시지를 제공 할 수 있습니다.
시작시 설치됩니다.