애플리케이션 스크립팅... 그룹화 기준, 변수몇 가지 SQL 쿼리가 포함된 스크립트를 실행하고 그래프를 만들기 전에 사용자가 몇 가지 옵션을 선택할 수 있는 응용 프로그램을 만들고 있습니다. 너무 이상하지는 않습니다.
라디오 버튼 컨트롤은 "type"이라는 변수의 값을 설정하는 데 사용됩니다.이변량 그래프의 "fit where" 옵션 중 하나가 이 변수의 내용이 되도록 하고 싶습니다.
Bivariate(
Y( :Current),
X( :Voltage),
Show Points( 0 ),
Fit Where(
:type == "cell",
Fit Each Value( {Report( 0 ), Line Color( {0, 0, 255} ), Report( 0 )} )
),
Fit Where(
:type == type, //this is troublesome line... the graph is generated but not quite right.
Fit Each Value( {Report( 0 ), Line Color( {213, 72, 87} ), Report( 0 )} )
),
By( :CellID)
);
그래프는 올바르게 생성되지만 결과 그래프에 "각 값 유형 == 유형에 맞게"라고 표시되는 것이 짜증납니다.이름 대신 사용된 변수의 내용을 표시하려면 어떻게 해야 합니까?나는 "eval(type)"을 포함한 몇 가지 옵션을 이미 시도했습니다.

Re: 응용 프로그램 스크립팅... 그룹화 기준, 변수빠른 응답에 진심으로 감사드립니다. 예제에 복사하는 것을 잊어버렸는데 스크립트의 시작 부분이 "기본값은 here(1)입니다."로 시작했습니다. 관련 기능 앞에 있는 한 해당 명령이 스크립트 내에서 어디에 나타나는지는 중요하지 않습니다.
나는 Jim의 코드를 먼저 시도했고 원래 스크립트와 동일한 문제가 발생했습니다.값 13은 그래프 아래에 표시되지 않고 대신 "age==age"로 표시되었습니다.참고: 저는 JMP 12를 실행하고 있습니다.

내 테이블의 열과 일치하지 않는 변수 이름을 사용하고 있기 때문에 gzmorgan0에서 언급한 대로 열 값을 할당하려고 하는 JMP 문제가 발생한다고 생각하지 않습니다.
'어디에 맞추기' 대신 '그룹화'를 사용하는 접근 방식이 성공했습니다."그룹별" 메뉴 옵션을 통해 생성된 이변량에서 이 스크립트를 복사했기 때문에 왜 대신 'fit where'를 사용했는지에 대해 혼란스럽지 않습니다.그러나 그것은 또 다른 날의 또 다른 문제입니다.도와주셔서 감사합니다.
Re: 응용 프로그램 스크립팅... 그룹화 기준, 변수짐이 맞습니다.
여기에 기본값이 있는 이름(1)이 없으면 모든 변수는 전역 변수입니다. JMP 스크립팅 가이드에서는 다음과 같이 말합니다.
"글로벌 변수와 컬럼의 이름이 같은 경우...이 상황에서는 열 이름의 범위를 지정해야 합니다."
실제로 스크립트를 실행하면 오류가 발생합니다.
행 번호(-1)가 유효하지 않으므로 'age' 열에 값을 설정할 수 없습니다.
::age가 아니기 때문에 JMP는 age=13 문이 age라는 열에 값을 할당하려고 한다고 생각합니다.Names Default To Here(1)은 변수 "age"를 로컬로 만들고 이 충돌을 해결합니다. 그러나 여기에서는 기본 이름을 사용하는 것이 좋습니다(1) 그리고 _age 또는 usr_val과 같은 사용자 입력에 다른 이름을 사용하십시오.나는 이름 충돌(충돌, 일명 범위 지정)이 구문 및 오타 다음으로 두 번째로 많이 발생하는 스크립팅 오류라고 생각합니다.
아래 스크립트는 Jim의 스크립트를 약간 수정한 것입니다.
- _age에 값이 할당됨
- Fit Where()의 대안입니다.사용할 값을 선택한 다음 Group By()를 사용하면 각 Group By 값의 이름이 제공됩니다.
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
_age=13;
biv = dt << Bivariate(
Y( :weight),
X( :height),
Show Points( 0 ),
where(:age==12 | :age==_age),
Group By(:age),
Fit Each Value( {Report(0)}),
By(:sex)
);
biv << ( Curve[1] << Line Color ( {0, 0, 255 } ) );
biv << ( Curve[2] << Line Color ( {213, 72, 255 } ) );
Re: 응용 프로그램 스크립팅... 그룹화 기준, 변수문제는 범위 지정 문제인 것 같습니다.추가하기 전까지는 스크립트를 성공적으로 실행할 수 없었습니다.
Names Default to Here( 1 );
다음은 Big Class 데이터 테이블을 가리키는 열 이름이 있는 스크립트입니다.
names default to here(1);
dt=open("$SAMPLE_DATA/big class.jmp");
age=13;
Bivariate(
Y( :weight),
X( :height),
Show Points( 0 ),
Fit Where(
:age == 12,
Fit Each Value( {Report( 0 ), Line Color( {0, 0, 255} ), Report( 0 )} )
),
Fit Where(
:age == age, //this is troublesome line... the graph is generated but not quite right.
Fit Each Value( {Report( 0 ), Line Color( {213, 72, 87} ), Report( 0 )} )
),
By( :sex)
);