JMP 테이블의 셀을 스크립트에 연결하시겠습니까?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕,
첫 번째 열에 테스트 이름이 있는 분석된 데이터 테이블을 생성하는 JMP 스크립트가 있습니다.
각 테스트 이름을 일련의 그래프를 생성하는 스크립트에 연결할 수 있는지 궁금했습니다.
그게 가능한지 아는 사람 있나요?
감사해요,
올리비아
Re: JMP 테이블의 셀을 스크립트에 연결합니까?이 아이디어를 구현하는 것이 정말 즐거웠습니다.내 스크립트가 선택된 여러 행을 처리할 수 있는 경우(예: 결합된 플롯의 경우) 스크립트를 실행하기 전에 모든 행이 선택될 때까지(예: cntrl 키를 누른 경우) 기다릴 수 있는 방법이 있습니까?
예를 들어, 행 1,3,5를 선택하려면 현재 스크립트를 즉시 실행하는 행 1을 선택해야 합니다. 그런 다음 스크립트에서 생성된 창을 닫고 행 3을 선택합니다(cntrl 키를 누른 채). ), 스크립트를 즉시 실행한 다음 스크립트에서 생성된 창을 닫고(1과 3이 결합됨) 행 5를 선택합니다(cntrl 키를 누른 채)... 마지막으로 결합된 1, 3, 5. 1, 3, 5를 선택한 다음 스크립트를 실행할 수 있습니까?
Re: JMP 테이블의 셀을 스크립트에 연결합니까?감사합니다. 정말 도움이 되었습니다! 나는 마침내 그것을 작동시킬 수 있었다
Re: JMP 테이블의 셀을 스크립트에 연결합니까?아래 스크립트는 행에서 그래프를 만드는 스크립트가 포함된 수식 열이 있는 테이블용입니다.
행을 선택하면 선택한 행에 대한 여러 열의 내용이 하위 집합 테이블로 만들어지며, 이 테이블은 오버레이 플롯으로 그래프로 표시할 수 있도록 전치됩니다. 수식 열에 있는 원본 스크립트는 처음에는 많이 다르게 보이며 테이블 스크립트 아래에 포함되어 있습니다.
(테이블 스크립트를 스크립트 창에 복사하고 스크립트를 실행합니다)
새 테이블("결과 테이블",
행 추가( 5 ),
새 열("분석",
성격,
명사 같은,
값 설정( {"ANOVA", "Apple", "Bannana", "Orange", "Peach"} )
),
새 열("결과 1",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() )
),
새 열("결과 2",
숫자,
마디 없는,
형식( "", 9 ),
수식( 무작위 균일() )
),
새 열("결과 3",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() )
),
새 열("결과 4",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() ),
선택 항목 설정
),
새 열("결과 5",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() )
),
새 열("결과 6",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() )
),
새 열("결과 7",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() )
),
새 열("결과 8",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() )
),
새 열("결과 9",
숫자,
마디 없는,
형식( "최고", 12 ),
수식( 무작위 균일() )
),
새 열("그래프를 만들 수식이 있는 열",
숫자,
마디 없는,
형식( "최고", 12 ),
공식(
If( 선택됨( 행 상태() ),
평가(
구문 분석(
이름의 기본값은 여기에 있습니다( 1 );
기호 지우기( 1 );
dt0 = 현재 데이터 테이블();
rn = dt0 << 선택된 행을 얻습니다;
tn = dt0:분석[rn];
dt1 = 데이터 테이블( "결과 테이블" ) <<
하위 집합(
출력 테이블( tn[1] ),
선택한 열( 0 ),
선택한 행( 0 ),
행( rn )
);
dt2 = dt1 << 열(
:결과 1,
:결과 2,
:결과 3,
:결과 4,
:결과 5,
:결과 6,
:결과 7,
:결과 8,
:결과 9
)`;
그래프1 = Expr(
dt2 << 오버레이 플롯(
Y( 열( 2 ) ),
별도의 축( 1 ),
누락을 통한 연결( 1 )
)
);
journgraph1 = Eval( graph1 ) << 저널 가져오기;
새 창( "보고서 창" || tn[1],
텍스트 상자("" 그래프 || tn[1] ),
저널 박스( journgraph1 )
);
닫기( dt1, 저장 안함 );
닫기(dt2, 저장 안함);
)
)
)
)
),
행 상태 설정( [0, 0, 0, 0, 1] )
)
수식 열에 붙여넣을 스크립트입니다.
( 1 ) ;
() ;
( 선택된 ( 행 상태 () )
(
(
( 1 ) ;
( 1 ) ;
= 현재 데이터 테이블 () ;
= dt0 << 선택한 행 가져오기 ;
= dt0 : 분석 [ rn ] ;
= 데이터 테이블 ( "결과 테이블" ) << 하위 집합 (
1 ] ) ,
0 ) ,
0 ) ,
//,보이지 않는
;
= dt1 << 바꾸어 놓다 (
: 결과 1 ,
: 결과 2 ,
: 결과 3 ,
: 결과 4 ,
: 결과 5 ,
: 결과 6 ,
: 결과 7 ,
: 결과 8 ,
: 결과 9 ,
: 열 11
,
: 분석 [ rn ] ) , //이것은 수식에서 번역되지 않습니다.
1 ] || "그래프용" ) //,보이지 않는
;
= 특급 ( dt2 << 오버레이 플롯 ( 와이 ( 열 ( 2 ) ) , 별도의 축 ( 1 ) , 연결 누락됨 ( 1 ) )) ;
= 평가 ( 그래프1 ) << 저널 받기 ;
( "에 대한 보고서 창" || 테네시 [ 1 ] , 텍스트 상자 ( "의 그래프" || 테네시 [ 1 ]) , 저널 박스 ( 저널그래프1 )) ;
( dt1 , 저장하지 않음 ) ;
( dt2 , 저장하지 않음 ) ;
//파싱 끝
//평가 끝
; //if 끝
Re: JMP 테이블의 셀을 스크립트에 연결합니까?감사해요
이 모든 것을 내 스크립트에 추가하는 데 문제가 있습니다.
내가 하려고 했던 것은 테이블을 가져온 다음 다음과 같은 열을 추가하는 것입니다.
" 선택된 ( 행 상태 ( 열 ())) , 이름 =: 테스트 이름 [( 현재 데이터 테이블 () << 선택한 행 가져오기 )[ 1 ]] ;
포함하다 ( "C:/사용자/..../테스트/" || 평가 ( 구문 분석 ( : 테스트 이름 )) || ".jsl" ) ; 1 , 0 ) ;"
여기서 "Tests"는 두 번째 스크립트 폴더입니다(사용자가 테이블의 행을 클릭할 때 사용되는 폴더).
첫 번째 문제는 따옴표가 문제를 일으키기 때문에 이를 수행할 방법을 찾을 수 없다는 것이고, 두 번째 문제는 내가 여기서 하고 있는 일이 모두 나와 함께 일하는 다른 사람들에게 바라는 도구의 일부라는 것입니다. 사용할 수 있습니다. 이제 파일 경로를 통해 액세스되는 두 번째 스크립트가 있다는 것을 알 수 있습니까(스크립트는 내 데스크탑에 있음)?
다시 한 번 도움을 주셔서 감사합니다.
올리비아
Re: JMP 테이블의 셀을 스크립트에 연결합니까?먼저 경로 문자열을 확인하세요. 첫 번째 인수에는 스크립트 디렉터리 경로만 포함되어야 하므로 /(슬래시)로 끝나야 합니다.
선택한 TestName을 변수에 전달하려면 좀 더 명시적이어야 합니다.
이름 =: 테스트 이름 [( 현재 데이터 테이블 () << 선택한 행 가져오기 )[ 1 ]]
이 코드는 열 수식(아래 예 참조)이나 호출된 스크립트에서 실행할 수 있습니다.
만약에 ( 선택된 ( 행 상태 ( 열 ())) , 이름 =: 테스트 이름 [( 현재 데이터 테이블 () << 선택한 행 가져오기 )[ 1 ]] ; 포함하다 ( "C:/사용자/..../your_script_folder/" || 평가 ( 구문 분석 ( : 테스트 이름 )) || ".jsl" ) ; 1 , 0 ) ;
Re: JMP 테이블의 셀을 스크립트에 연결합니까?
네, 그게 바로 제가 하고 싶은 일이에요.
내가 겪고 있는 문제는 해당 테스트 이름을 JMP 스크립트로 다시 가져와 내 함수가 해당 작업을 수행할 수 있도록 R로 보낼 수 있어야 한다는 것입니다...
나는 이것을 시도했습니다 :
내 테이블의 추가 열에서:
If(Selected(행 상태(행())), include("C:/Users/....jsl" || Eval(Parse(:TestName)) || ".jsl"); 1, 0)
그런 다음 스크립트 페이지에서 다음을 수행합니다.
tname = TestName << 텍스트 가져오기;
rconn << Send(tname,R Name("tname"));
분명히 뭔가 잘못하고 있는 것 같은데 작동하지 않네요...
Re: JMP 테이블의 셀을 스크립트에 연결합니까?테이블에서 행을 선택하여 스크립트 작업을 트리거한다는 의미라면 다음을 살펴보는 것이 좋습니다. 이 데모 JMP 파일 교환에서. jsl이 수행할 수 있는 모든 유형의 작업은 Ian Cox가 해당 데모에서 사용하는 트릭을 사용하여 행을 선택하여 호출할 수 있습니다.
그의 예에서 스크립트는 실제로 테이블 셀 내의 문자열이지만 테이블 스크립트를 호출하는 것이 가능해야 합니다. 또는 include() 함수를 사용하여 독립 실행형 스크립트를 호출하면 안 됩니다.
예를 들어 문자 열 "testname"의 셀 내용과 정확히 동일한 이름의 스크립트를 실행하려면 숨겨진 열에서 아래의 열 수식을 사용해 보세요.
만약에 ( 선택된 ( 행 상태 ( 열 ())) , 포함하다 ( "너의 길" || 평가 ( : 테스트 이름 ) || ".jsl" ) ; 1 , 0 )
세 번째 행의 testname이 "ANOVA"인 경우 경로가 "yourpath"인 디렉터리에 저장된 ANOVA.jsl 스크립트는 세 번째 행이 선택될 때 실행됩니다(수동으로 실행될 수도 있고 스크립트에 의해서도 실행될 수도 있음).