JMP 스크립트: 계수에 적용된 열 전환기여러분, 안녕하세요,
이 스크립트로 만든 다른 계산에서 열 전환기를 만들려고 합니다.
//Calcul du Zsigma
z_yyy = Eval( {<STRONG>:"Y1"n</STRONG>} );
z_xx = z_yyy[1] << get values;
z_nnn = Eval( {:Nombre de seringues} );
z_nn = z_nnn[1] << get values;
z_rrr = Eval( {:Numéro de lot} );
z_Proportion = E Div( z_xx, z_nn );
z_Pbar = V Sum( z_xx ) / V Sum( z_nn );
z_sigma_est = Root( z_Pbar * (1 - z_Pbar) );
z_zvalue = E Mult( ((z_Proportion - z_Pbar) / z_sigma_est), Root( z_nn ) );
z_nr = N Row( z_zvalue );
z_mRList = {0};
z_m = z_zvalue;
z_m[1, 0] = [];
z_m = z_m |/ [0];
z_mr = Abs( z_m - z_zvalue );
z_nr = N Row( z_mr );
z_mr[z_nr, 0] = [];
z_SigmaZ = Mean( z_mr ) / 1.128;
z_KSigmaZ = 3 * z_SigmaZ;
//그런 다음 열 전환기가 있습니다.
Column = z_yyy << Column Switcher( :"Y1"n,{:"Y1"n, :"Y2"n, :"Y3"n, :"Y4"n ,"Y5"n ,"Y6"n});그런데 객체에 컬럼 스위처가 적용되지 않아서 오류 메시지가 뜨는데...
저를 도와줄 제안이 있으신가요?
세바스티앙
스크립팅Re: JMP 스크립트: 계수에 적용된 열 전환기엄청난! 정말 잘 작동하고 있습니다!
도와 주셔서 정말로 고맙습니다 
세바스티앙
Re: JMP 스크립트: 계수에 적용된 열 전환기나는 당신이 정말로 사용해야하는 것은
z_yyy = Eval(column(currCol)<<GET name=""></GET>
ait는 선택한 열의 값을 반환합니다.
Re: JMP 스크립트: 계수에 적용된 열 전환기이것을 시도해보고 그것이 당신에게 효과가 있는지 확인할 수 있습니다.그것은 나를 위해 잘 작동하는 것 같았다. 로그에 z_xx 할당에 대한 몇 가지 경고가 있지만 실제로는 할당이 잘 되었습니다. 아래 예에서는 Y3 = Y2인 새 열을 만들었습니다.
로그 경고:
Send는 'Send' , z_yyy << /*###*/get values/*###*/의 액세스 또는 평가에서 스크립터블 개체를 예상합니다.
16행에서
names default to here(1);
dt = current data table();
colList = {"Y1", "Y2", "Y3"};
new window("Calculations",
hlb = hlistbox(
clb = col list box(dt, max selected(1),
on change(
try(calcVlb << delete());
currCol = clb << get selected();
//currColName = char(currCol[1]);
z_yyy = Eval(column(currCol));// Eval( {currCol} );
z_xx = z_yyy << get values;
z_nnn = Eval( {:Nombre de seringues} ); //change back
z_nn = z_nnn[1] << get values;
z_rrr = Eval( {:Numéro de lot} ); //change back
z_Proportion = E Div( z_xx, z_nn );
z_Pbar = V Sum( z_xx ) / V Sum( z_nn );
z_sigma_est = Root( z_Pbar * (1 - z_Pbar) );
z_zvalue = E Mult( ((z_Proportion - z_Pbar) / z_sigma_est), Root( z_nn ) );
z_nr = N Row( z_zvalue );
z_mRList = {0};
z_m = z_zvalue;
z_m[1, 0] = [];
z_m = z_m |/ [0];
z_mr = Abs( z_m - z_zvalue );
z_nr = N Row( z_mr );
z_mr[z_nr, 0] = [];
z_SigmaZ = Mean( z_mr ) / 1.128;
z_KSigmaZ = 3 * z_SigmaZ;
show(currCol[1]);
show(z_KSigmaZ);
hlb << append(
calcVlb = vlistbox(
textbox("Variables updated to column " || currCol[1]);
)
);
/*calcVlb << append(
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( column(currCol[1])),
Horizontal Layout( 1 ),
Vertical( 0 ),
PpK Capability Labeling( 0 ),
Customize Summary Statistics(
Std Err Mean( 0 ),
Upper Mean Confidence Interval( 0 ),
Lower Mean Confidence Interval( 0 ),
N Missing( 1 ),
Range( 1 )
)
)
);
);*/
Graph_exprall=Expr(
calcVlb << append(
Graphall = Control Chart(
Sample Label( :Nombre de seringues ),
Sample Size( :Numéro de lot ),
KSigma(TBD),
Sort by Row Order( 1 ),
Chart Col( column(currCol[1]), P( Test Beyond Limits( 1 ), Limits Precision( 1 ), LCL( -3 ) ) ),
SendToReport(
Dispatch(
{},
String_TBD,
OutlineBox,
{Set Title( "p'-chart, Proportion de défaut" )}
),
Dispatch(
{String_TBD},
"2",
ScaleBox,
{Format( "Fixed Dec", 12, 5 ), Min( -0.00025 ), Max( 0.0025 ),
Inc( 0.00025 ), Minor Ticks( 1 )}
),
Dispatch(
{String_TBD},
"1",
ScaleBox,
{Min( 0.5 ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch(
{String_TBD},
"",
AxisBox,
{Add Axis Label( "Taux de défauts (srg)" )}
)));
//ColumnSwitcherObject = graphall << Column Switcher( :"Y1"n,{:"Y2"n, :"Y3"n, :"Y4"n, :"Y5"n ,"Y6"n ,"Y7"n});
);
);
// On affecte le SigmaZ à la carte de controle
olbString = "P of " || currCol[1];
SubstituteInto(Graph_exprall, Expr(TBD), z_KSigmaZ);
SubstituteInto(Graph_exprall, Expr(String_TBD), olbString);
Graph_exprall;
)
)
)
);
clb << append(colList);
clb << set selected(1);
Re: JMP 스크립트: 계수에 적용된 열 전환기이 표현으로 시도했습니다.
KSigma(미정),
그러나 colList가 선택된 그래프에서 KSigma는 업데이트되지 않습니다.
그러나 선택한 열(전환기)로 그래프가 업데이트됩니다.
나를 도울 아이디어가 있습니까?
첨부된 데이터 세트 예제를 찾을 수 있습니다.
Re: JMP 스크립트: 계수에 적용된 열 전환기디버깅을 위해 설정된 데이터 세트가 없기 때문에 확실하지 않지만 표현식에서 코드를 변경하고 TBD를 제거하고 변수 자체로 대체했습니다. TBD로 다시 변경해 볼 수 있습니다.
KSigma(z_KSigmaZ),
Re: JMP 스크립트: 계수에 적용된 열 전환기안녕,
귀하의 답변에 감사드립니다. 많은 도움이됩니다.
거의 다 온 것 같아요.
작동하지 않는 단 한 가지가 있습니다. z_KSigmaZ가 작성된 그래프에서 업데이트되지 않습니다...
내 코드는 다음과 같습니다.
colList = {"Y1", "Y2", "Y3"};
new window("Calculations",
hlb = hlistbox(
clb = col list box(dt, max selected(1),
on change(
try(calcVlb << delete());
currCol = clb << get selected();
currColName = char(currCol[1]);
z_yyy = Eval(column(currCol));// Eval( {currCol} );
z_xx = z_yyy << get values;
z_nnn = Eval( {:Nombre de seringues} ); //change back
z_nn = z_nnn[1] << get values;
z_rrr = Eval( {:Numéro de lot} ); //change back
z_Proportion = E Div( z_xx, z_nn );
z_Pbar = V Sum( z_xx ) / V Sum( z_nn );
z_sigma_est = Root( z_Pbar * (1 - z_Pbar) );
z_zvalue = E Mult( ((z_Proportion - z_Pbar) / z_sigma_est), Root( z_nn ) );
z_nr = N Row( z_zvalue );
z_mRList = {0};
z_m = z_zvalue;
z_m[1, 0] = [];
z_m = z_m |/ [0];
z_mr = Abs( z_m - z_zvalue );
z_nr = N Row( z_mr );
z_mr[z_nr, 0] = [];
z_SigmaZ = Mean( z_mr ) / 1.128;
z_KSigmaZ = 3 * z_SigmaZ;
show(currCol[1]);
show(z_Proportion);
hlb << append(
calcVlb = vlistbox(
textbox("Variables updated to column " || currCol[1]);
)
);
/*calcVlb << append(
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( column(currCol[1])),
Horizontal Layout( 1 ),
Vertical( 0 ),
PpK Capability Labeling( 0 ),
Customize Summary Statistics(
Std Err Mean( 0 ),
Upper Mean Confidence Interval( 0 ),
Lower Mean Confidence Interval( 0 ),
N Missing( 1 ),
Range( 1 )
)
)
);
);*/
Graph_exprall=Expr(
hlb << append(
Graphall = Control Chart(
Sample Label( :Numéro de lot ),
Sample Size( :Nombre de seringues ),
KSigma(z_KSigmaZ),
Sort by Row Order( 1 ),
Chart Col( column(currCol[1]), P( Test Beyond Limits( 1 ), Limits Precision( 1 )) ),
SendToReport(
Dispatch(
{},
"P of Y1",
OutlineBox,
{Set Title( "p'-chart, Proportion de défaut" )}
),
Dispatch(
{"P of Y1"},
"2",
ScaleBox,
{Format( "Fixed Dec", 12, 5 ), Inc( 0.00025 ), Minor Ticks( 1 )}
),
Dispatch(
{"P of Y1"},
"1",
ScaleBox,
{Min( 0.5 ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch(
{"P of Y1"},
"",
AxisBox,
{Add Axis Label( "Taux de défauts (srg)" )}
)));
ColumnSwitcherObject = graphall << Column Switcher( :"Y1"n,{:"Y1"n, :"Y2"n, :"Y3"n});
);
);
)
)
)
);
clb << append(colList);
clb << set selected(1);
SubstituteInto(Graph_exprall, Expr(TBD), z_KSigmaZ);
Graph_exprall;z_KSigmaZ는 계산은 잘 되지만 만들어진 그래프에는 적용이 안되고...
에서 오는 것 같아요 SubstituteInto(Graph_exprall, Expr(TBD), z_KSigmaZ);
도와줄 수 있나요?
정말 감사합니다.
Re: JMP 스크립트: 계수에 적용된 열 전환기죄송합니다. 별로 도움이 되지 않을 수 있습니다. 데이터 세트가 컨트롤 차트에 실제로 적합하지 않고 적절한 데이터 세트로 디버깅할 시간이 없었기 때문에 컨트롤 차트 코드에 오류가 있었습니다. 그러나 이것을 사용하고 컨트롤 차트 코드를 디버깅할 수 있습니다.컨트롤 차트 대신 배포 플랫폼으로 방금 테스트했는데 제대로 작동했습니다."on change()" 코드가 있는 col 목록 상자가 열 전환기를 대신하므로 컨트롤 차트 코드에 추가할 필요가 없습니다. col 목록 상자에서 새 매개 변수(열)를 선택할 때마다 삭제되고 다시 실행됩니다.
나는 당신이 음모를 원한다는 것을 몰랐습니다. 이 경우 컬럼 스위처를 사용하는 것이 더 적합했을 수 있습니다. 선택이 변경되었음을 가로채는 방법이 있으며 코드를 실행하여 변수를 업데이트하고 다시 플롯할 수 있습니다. 그러나이 col list box() 접근 방식도 괜찮을 것입니다.
names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
// New columns, update big class for y1, y2, y3
Local( {dt},
dt = Data Table( "Big Class" );
dt << New Column( "Y1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected
) << New Column( "Y2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected
) << New Column( "Y3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected
) << Begin Data Update;
For Each Row(
dt,
:Y1 = Random Integer( 1, 40 );
:Y2 = Random Integer( 1, 40 );
:Y3 = Random Integer( 1, 40 );
);
dt << End Data Update;
);
colList = {"Y1", "Y2", "Y3"};
new window("Calculations",
hlb = hlistbox(
clb = col list box(dt, max selected(1),
on change(
try(calcVlb << delete());
currCol = clb << get selected();
currColName = char(currCol[1]);
z_yyy = Eval(column(currCol));// Eval( {currCol} );
z_xx = z_yyy << get values;
z_nnn = Eval( {:weight} ); //change back
z_nn = z_nnn[1] << get values;
z_rrr = Eval( {:age} ); //change back
z_Proportion = E Div( z_xx, z_nn );
z_Pbar = V Sum( z_xx ) / V Sum( z_nn );
z_sigma_est = Root( z_Pbar * (1 - z_Pbar) );
z_zvalue = E Mult( ((z_Proportion - z_Pbar) / z_sigma_est), Root( z_nn ) );
z_nr = N Row( z_zvalue );
z_mRList = {0};
z_m = z_zvalue;
z_m[1, 0] = [];
z_m = z_m |/ [0];
z_mr = Abs( z_m - z_zvalue );
z_nr = N Row( z_mr );
z_mr[z_nr, 0] = [];
z_SigmaZ = Mean( z_mr ) / 1.128;
z_KSigmaZ = 3 * z_SigmaZ;
show(currCol[1]);
show(z_Proportion);
hlb << append(
calcVlb = vlistbox(
textbox("Variables updated to column " || currCol[1]);
)
);
calcVlb << append(
Distribution(
Stack( 1 ),
Continuous Distribution(
Column( column(currCol[1])),
Horizontal Layout( 1 ),
Vertical( 0 ),
PpK Capability Labeling( 0 ),
Customize Summary Statistics(
Std Err Mean( 0 ),
Upper Mean Confidence Interval( 0 ),
Lower Mean Confidence Interval( 0 ),
N Missing( 1 ),
Range( 1 )
)
)
);
);
//Graph_exprall=Expr(
/*
hlb << append(
Graphall = Control Chart(
Sample Label( :weight ),
Sample Size( :age ),
KSigma(z_KSigmaZ),
Sort by Row Order( 1 ),
Chart Col( column(currCol[1]), P( Test Beyond Limits( 1 ), Limits Precision( 1 ), LCL( -3 ) ) ),
SendToReport(
Dispatch(
{},
"P of Y1",
OutlineBox,
{Set Title( "p'-chart, Proportion de défaut" )}
),
Dispatch(
{"P of Y1"},
"2",
ScaleBox,
{Format( "Fixed Dec", 12, 5 ), Min( -0.00025 ), Max( 0.0025 ),
Inc( 0.00025 ), Minor Ticks( 1 )}
),
Dispatch(
{"P of Y1"},
"1",
ScaleBox,
{Min( 0.5 ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch(
{"P of Y1"},
"",
AxisBox,
{Add Axis Label( "Taux de défauts (srg)" )}
)));
//ColumnSwitcherObject = graphall << Column Switcher( :"Y1"n,{:"Y2"n, :"Y3"n, :"Y4"n, :"Y5"n ,"Y6"n ,"Y7"n});
// );
// On affecte le SigmaZ à la carte de controle
// SubstituteInto(Graph_exprall, Expr(TBD), z_KSigmaZ);
// Graph_exprall;
);
*/
)
)
)
);
clb << append(colList);
clb << set selected(1);
Re: JMP 스크립트: 계수에 적용된 열 전환기엄청난! 내 스크립트에서 작동 중입니다!
그런데 새로운 문제가 생겼습니다.
제가 만든 그래프가 계산된 계수로 업데이트가 안되네요...
여기 내 예가 다시 있습니다.
colList = {"Y1", "Y2", "Y3"};
new window("Calculations",
hlb = hlistbox(
clb = col list box(dt, max selected(1),
on change(
try(calcVlb << delete());
currCol = clb << get selected();
currColName = char(currCol[1]);
z_yyy = Eval(column(currCol));// Eval( {currCol} );
z_xx = z_yyy << get values;
z_nnn = Eval( {:Nombre de seringues} );
z_nn = z_nnn[1] << get values;
z_rrr = Eval( {:Numéro de lot} );
z_Proportion = E Div( z_xx, z_nn );
z_Pbar = V Sum( z_xx ) / V Sum( z_nn );
z_sigma_est = Root( z_Pbar * (1 - z_Pbar) );
z_zvalue = E Mult( ((z_Proportion - z_Pbar) / z_sigma_est), Root( z_nn ) );
z_nr = N Row( z_zvalue );
z_mRList = {0};
z_m = z_zvalue;
z_m[1, 0] = [];
z_m = z_m |/ [0];
z_mr = Abs( z_m - z_zvalue );
z_nr = N Row( z_mr );
z_mr[z_nr, 0] = [];
z_SigmaZ = Mean( z_mr ) / 1.128;
z_KSigmaZ = 3 * z_SigmaZ;
show(currCol[1]);
show(z_Proportion);
show(z_KSigmaZ);
hlb << append(
calcVlb = vlistbox(
textbox("Variables updated to column " || currCol[1]);
)
)
)
)
)
);
// Creation des cartes
clb << append(colList);
clb << set selected(1);z_KSigmaZ는 각 변수에 대해 내가 원하는 대로 업데이트됩니다.
하지만 다음 그래프를 만들고 싶습니다.
Graph_exprall=Expr(
Graphall = Control Chart(
Sample Label( :Numéro de lot ),
Sample Size( :Nombre de seringues ),
KSigma(TBD),
Sort by Row Order( 1 ),
Chart Col( :"Y1"n, P( Test Beyond Limits( 1 ), Limits Precision( 1 ), LCL( -3 ) ) ),
SendToReport(
Dispatch(
{},
"P of Y1",
OutlineBox,
{Set Title( "p'-chart, Proportion de défaut" )}
),
Dispatch(
{"P of Y1"},
"2",
ScaleBox,
{Format( "Fixed Dec", 12, 5 ), Min( -0.00025 ), Max( 0.0025 ),
Inc( 0.00025 ), Minor Ticks( 1 )}
),
Dispatch(
{"P of Y1"},
"1",
ScaleBox,
{Min( 0.5 ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch(
{"P of Y1"},
"",
AxisBox,
{Add Axis Label( "Taux de défauts (srg)" )}
)));
ColumnSwitcherObject = graphall << Column Switcher( :"Y1"n,{:"Y2"n, :"Y3"n, :"Y4"n, :"Y5"n ,"Y6"n ,"Y7"n});
);
// On affecte le SigmaZ à la carte de controle
SubstituteInto(Graph_exprall, Expr(TBD), z_KSigmaZ);
Graph_exprall;계산된 새 z_KSigmaZ 계수로 그래프를 업데이트하는 방법이 있습니까?
컨트롤 차트 창 내에서 z_KSigmaZ 계수와 변수 선택을 설정하는 것이 좋을 것 같습니다.
도와줄 수 있나요?
정말 감사합니다.
Re: JMP 스크립트: 계수에 적용된 열 전환기안녕 세바스티앙,
열 목록을 클릭하면 JMP가 이러한 계산(변수)을 업데이트하기를 원하는 것 같습니다. 그 맞습니까? 그렇다면 아래 코드는 col 목록 상자를 사용하여 이를 수행합니다.첫 번째 비트는 Y1, Y2 및 Y3 열을 포함하도록 샘플 테이블을 설정하는 것입니다.그런 다음 열 목록 상자가 있는 새 창을 만들고 열 목록으로 채웁니다. 선택 가능한 최대 열 수 == 1이 되도록 하십시오. 선택이 변경되면 다시 계산됩니다.그래픽을 추가할 수 있는 calcVlb라는 av list box()가 있습니다. 다음 선택 항목으로 변경하면 새 항목으로 바꾸기 전에 이전 항목이 삭제됩니다. 지금은 예제로 텍스트 상자만 추가합니다.
names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
// New columns, update big class for y1, y2, y3
Local( {dt},
dt = Data Table( "Big Class" );
dt << New Column( "Y1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected
) << New Column( "Y2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected
) << New Column( "Y3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected
) << Begin Data Update;
For Each Row(
dt,
:Y1 = Random Integer( 1, 40 );
:Y2 = Random Integer( 1, 40 );
:Y3 = Random Integer( 1, 40 );
);
dt << End Data Update;
);
colList = {"Y1", "Y2", "Y3"};
new window("Calculations",
hlb = hlistbox(
clb = col list box(dt, max selected(1),
on change(
try(calcVlb << delete());
currCol = clb << get selected();
currColName = char(currCol[1]);
z_yyy = Eval(column(currCol));// Eval( {currCol} );
z_xx = z_yyy << get values;
z_nnn = Eval( {:weight} ); //change back
z_nn = z_nnn[1] << get values;
z_rrr = Eval( {:age} ); //change back
z_Proportion = E Div( z_xx, z_nn );
z_Pbar = V Sum( z_xx ) / V Sum( z_nn );
z_sigma_est = Root( z_Pbar * (1 - z_Pbar) );
z_zvalue = E Mult( ((z_Proportion - z_Pbar) / z_sigma_est), Root( z_nn ) );
z_nr = N Row( z_zvalue );
z_mRList = {0};
z_m = z_zvalue;
z_m[1, 0] = [];
z_m = z_m |/ [0];
z_mr = Abs( z_m - z_zvalue );
z_nr = N Row( z_mr );
z_mr[z_nr, 0] = [];
z_SigmaZ = Mean( z_mr ) / 1.128;
z_KSigmaZ = 3 * z_SigmaZ;
show(currCol[1]);
show(z_Proportion);
hlb << append(
calcVlb = vlistbox(
textbox("Variables updated to column " || currCol[1]);
)
)
)
)
)
);
clb << append(colList);
clb << set selected(1);
Re: JMP 스크립트: 계수에 적용된 열 전환기열 전환기 기능은 Graph Builder 또는 Bivariate와 같은 JMP 플랫폼의 일부입니다. 매트릭스의 특징이 아닙니다. 데이터 테이블에 데이터 열을 생성하지 않습니다.
매트릭스로 데이터 테이블을 생성하고 데이터 열을 분석 역할에 할당하여 플랫폼을 시작한 다음 열 전환 기능을 활성화해야 합니다.