cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
%3CLINGO-SUB%20id%3D%22lingo-sub-797873%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EComment%20obtenir%20des%20limites%20de%20sp%C3%A9cifications%20dans%20des%20colonnes%20s%C3%A9par%C3%A9es%20dans%20un%20tableau%20r%C3%A9capitulatif%20en%205%20points%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-797873%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EL'exemple%20de%20script%20ci-dessous%20me%20permet%20d'obtenir%20le%20r%C3%A9sum%C3%A9%20%C3%A0%205%20chiffres%20au%20format%20dont%20j'ai%20besoin.%20Cependant%2C%20je%20souhaiterais%20%C3%A9galement%20obtenir%20les%20limites%20de%20sp%C3%A9cification%20pour%20chaque%20param%C3%A8tre%20(sous%20Colonnes%20d'analyse)%2C%20LSL%20et%20USL%2C%20dans%20deux%20colonnes%20distinctes%20dans%20le%20tableau%20de%20donn%C3%A9es%20final%20%C2%AB%26nbsp%3BR%C3%A9sum%C3%A9%26nbsp%3B%C2%BB%26nbsp%3B%3F%20Comment%20obtenir%20cela%20via%20JSL%26nbsp%3B%3F%3C%2FP%3E%3CP%3EDe%20plus%2C%20existe-t-il%20une%20autre%2Fmeilleure%20fa%C3%A7on%20de%20faire%20ce%20dont%20j'ai%20besoin%20sans%20utiliser%20Tabulate()%20%3F%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(%201%20)%3B%0AClear%20Log()%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FSemiconductor%20Capability.jmp%22%20)%3B%0Acol_names%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20Column%20Group(%20%22Processes%22%20)%3B%0A%0A(dt%20%26lt%3B%26lt%3B%20Tabulate(%0A%09Show%20Control%20Panel(%200%20)%2C%0A%09Add%20Table(%0A%09%09Column%20Table(%20Statistics(%20Min%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Mean%2C%20Median%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Max%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Std%20Dev%20)%20)%2C%0A%09%09Row%20Table(%0A%09%09%09Grouping%20Columns(%20%3Alot_id%2C%20%3Awafer%2C%20%3AWafer%20ID%20in%20lot%20ID%20)%2C%0A%09%09%09Analysis%20Columns(%0A%09%09%09%09Eval(%20col_names%20)%0A%0A%09%09%09)%0A%09%09)%0A%09)%0A))%20%26lt%3B%26lt%3B%20Make%20Into%20Data%20Table%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-797873%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EAutomatisation%20et%20scripts%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EFen%C3%AAtres%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-797890%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ER%C3%A9%26nbsp%3B%3A%20Comment%20obtenir%20les%20limites%20de%20sp%C3%A9cifications%20dans%20des%20colonnes%20s%C3%A9par%C3%A9es%20dans%20un%20tableau%20r%C3%A9capitulatif%20en%205%20points%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-797890%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EVous%20pouvez%20utiliser%20le%20syst%C3%A8me%20de%20gestion%20des%20limites%20pour%20faire%20ce%20que%20vous%20voulez%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(%201%20)%3B%0AClear%20Log()%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FSemiconductor%20Capability.jmp%22%20)%3B%0Acol_names%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20Column%20Group(%20%22Processes%22%20)%3B%0A%0A(tab%20%3D%20dt%20%26lt%3B%26lt%3B%20Tabulate(%0A%09Show%20Control%20Panel(%200%20)%2C%0A%09Add%20Table(%0A%09%09Column%20Table(%20Statistics(%20Min%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Mean%2C%20Median%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Max%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Std%20Dev%20)%20)%2C%0A%09%09Row%20Table(%0A%09%09%09Grouping%20Columns(%20%3Alot_id%2C%20%3Awafer%2C%20%3AWafer%20ID%20in%20lot%20ID%20)%2C%0A%09%09%09Analysis%20Columns(%0A%09%09%09%09Eval(%20col_names%20)%0A%0A%09%09%09)%0A%09%09)%0A%09)%0A))%20%26lt%3B%26lt%3B%20Make%20Into%20Data%20Table%3B%0AdtTab%20%3D%20current%20data%20table()%3B%0Atab%20%26lt%3B%26lt%3B%20close%20window%3B%0A%0AprocCols%20%3D%20Associative%20Array(dtTab%3AAnalysis%20Columns%20%26lt%3B%26lt%3B%20get%20values)%20%26lt%3B%26lt%3B%20get%20keys%3B%0Aobj%20%3D%20dt%20%26lt%3B%26lt%3B%20Manage%20Limits(%0A%09Process%20Variables%20(%20eval(procCols)%20)%0A)%3B%0Aobj%20%26lt%3B%26lt%3B%20Save%20to%20Tall%20Limits%20Table%3B%0AdtLimits%20%3D%20current%20data%20table()%3B%0Aobj%20%26lt%3B%26lt%3B%20close%20window%3B%0Atry(%20window(%22Consistency%20Problem%22)%20%26lt%3B%26lt%3B%20close%20window%20)%3B%0A%0AdtTab%20%26lt%3B%26lt%3B%20Update(%0A%09with(%20dtLimits%20)%2C%0A%09Match%20Columns(%20%3AAnalysis%20Columns%20%3D%20%3AVariable%20)%2C%0A%09Add%20Columns%20from%20Update%20Table(%20%3ALSL%2C%20%3ATarget%2C%20%3AUSL)%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22txnelson_0-1726066776333.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22txnelson_0-1726066776333.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22txnelson_0-1726066776333.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22txnelson_0-1726066776333.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22txnelson_0-1726066776333.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22txnelson_0-1726066776333.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22txnelson_0-1726066776333.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F68138i9AC90A69B4B797A4%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22txnelson_0-1726066776333.png%22%20alt%3D%22txnelson_0-1726066776333.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-798231%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ER%C3%A9%26nbsp%3B%3A%20Comment%20obtenir%20les%20limites%20de%20sp%C3%A9cifications%20dans%20des%20colonnes%20s%C3%A9par%C3%A9es%20dans%20un%20tableau%20r%C3%A9capitulatif%20en%205%20points%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798231%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F2687%22%20target%3D%22_blank%22%3E%40txnelson%3C%2FA%3E%20Merci.%20J'obtiens%20une%20erreur%20dans%20mon%20JMP%2016.2%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Neo_0-1726142696152.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726142696152.png%22%20style%3D%22width%3A%20287px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726142696152.png%22%20style%3D%22width%3A%20287px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726142696152.png%22%20style%3D%22width%3A%20287px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726142696152.png%22%20style%3D%22width%3A%20287px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726142696152.png%22%20style%3D%22width%3A%20287px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F68174i912F2CC509C04C4B%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Neo_0-1726142696152.png%22%20alt%3D%22Neo_0-1726142696152.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%20%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-798333%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ER%C3%A9%26nbsp%3B%3A%20Comment%20obtenir%20les%20limites%20de%20sp%C3%A9cifications%20dans%20des%20colonnes%20s%C3%A9par%C3%A9es%20dans%20un%20tableau%20r%C3%A9capitulatif%20en%205%20points%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798333%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ECela%20peut%20%C3%AAtre%20suffisant%20si%20vous%20utilisez%20des%20variables%20au%20lieu%20de%20vous%20fier%20%C3%A0%20la%20table%20de%20donn%C3%A9es%20actuelle.%20Au%20moins%20dans%20JMP17.2%2C%20tabulate%20%26lt%3B%26lt%3B%20make%20into%20data%20table%20et%20%26lt%3B%26lt%3B%20save%20tall%20boundaries%20table%20return%20reference%20to%20the%20table%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(1)%3B%0AClear%20Log()%3B%0Adt%20%3D%20Open(%22%24SAMPLE_DATA%2FSemiconductor%20Capability.jmp%22)%3B%0Acol_names%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20Column%20Group(%22Processes%22)%3B%0A%0Atab%20%3D%20dt%20%26lt%3B%26lt%3B%20Tabulate(%0A%09Show%20Control%20Panel(0)%2C%0A%09Add%20Table(%0A%09%09Column%20Table(Statistics(Min))%2C%0A%09%09Column%20Table(Statistics(Mean%2C%20Median))%2C%0A%09%09Column%20Table(Statistics(Max))%2C%0A%09%09Column%20Table(Statistics(Std%20Dev))%2C%0A%09%09Row%20Table(%0A%09%09%09Grouping%20Columns(%3Alot_id%2C%20%3Awafer%2C%20%3AWafer%20ID%20in%20lot%20ID)%2C%0A%09%09%09Analysis%20Columns(%0A%09%09%09%09Eval(col_names)%0A%0A%09%09%09)%0A%09%09)%0A%09)%0A)%3B%0A%0Adttab%20%3D%20tab%20%26lt%3B%26lt%3B%20Make%20Into%20Data%20Table%3B%0Atab%20%26lt%3B%26lt%3B%20close%20window%3B%0A%0AprocCols%20%3D%20Associative%20Array(dtTab%3AAnalysis%20Columns%20%26lt%3B%26lt%3B%20get%20values)%20%26lt%3B%26lt%3B%20get%20keys%3B%0Aobj%20%3D%20dt%20%26lt%3B%26lt%3B%20Manage%20Limits(Process%20Variables(Eval(procCols)))%3B%0Adtlimits%20%3D%20obj%20%26lt%3B%26lt%3B%20Save%20to%20Tall%20Limits%20Table%3B%0Aobj%20%26lt%3B%26lt%3B%20close%20window%3B%0ATry(Window(%22Consistency%20Problem%22)%20%26lt%3B%26lt%3B%20close%20window)%3B%0A%0AdtTab%20%26lt%3B%26lt%3B%20Update(%0A%09with(dtLimits)%2C%0A%09Match%20Columns(%3AAnalysis%20Columns%20%3D%20%3AVariable)%2C%0A%09Add%20Columns%20from%20Update%20Table(%3ALSL%2C%20%3ATarget%2C%20%3AUSL)%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-798516%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ER%C3%A9%26nbsp%3B%3A%20Comment%20obtenir%20les%20limites%20de%20sp%C3%A9cifications%20dans%20des%20colonnes%20s%C3%A9par%C3%A9es%20dans%20un%20tableau%20r%C3%A9capitulatif%20en%205%20points%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798516%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F14366%22%20target%3D%22_blank%22%3E%40jthi%3C%2FA%3E%20Obtenez%20cette%20erreur%20sur%20JMP%2016.2%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EObject%20'Data%20Table'%20does%20not%20recognize%20the%20message%20'Manage%20Limits'%3B%20%3CBR%20%2F%3Eperhaps%20you%20mean%20one%20of%20these%3A%20%20%26lt%3B%3CMANAGE%20spec%3D%22%22%20limits%3D%22%22%3E%26lt%3B%3CITEM%20analysis%3D%22%22%3E%26lt%3B%3CFACTOR%3E%26lt%3B%3CCOMBINE%20columns...%3D%22%22%3E%26lt%3B%3CMAKE%20indicator%3D%22%22%3E%26lt%3B%3CNEW%3E%26lt%3B%3CPASTE%20columns%3D%22%22%3E%26lt%3B%3CMARKERS%3E%26lt%3B%3CSELECT%20matching%3D%22%22%20cells%3D%22%22%3E%26lt%3B%3CGET%20rows%3D%22%22%3E%26lt%3B%3CMAXIMIZE%20display%3D%22%22%3E%26lt%3B%3CMOVE%20scripts%3D%22%22%3E%26lt%3B%3CRENAME%20table%3D%22%22%20script%3D%22%22%3E%26lt%3B%3CMATCHED%20pairs%3D%22%22%3E%26lt%3B%3CMULTIVARIATE%3E%26lt%3B%3CNORMAL%20mixtures%3D%22%22%3E%26lt%3B%3CCAPABILITY%3E%26lt%3B%3CPARALLEL%20plot.%3D%22%22%20there%3D%22%22%20is%3D%22%22%20no%3D%22%22%20other%3D%22%22%20opened%3D%22%22%20data%3D%22https%3A%2F%2Fcommunity.jmp.com%2F%22%20to%3D%22%22%20update%3D%22%22%20the%3D%22%22%20current%3D%22%22%20table.%3D%22%22%20empty%3D%22%22%3E%3C%2FPARALLEL%3E%3C%2FCAPABILITY%3E%3C%2FNORMAL%3E%3C%2FMULTIVARIATE%3E%3C%2FMATCHED%3E%3C%2FRENAME%3E%3C%2FMOVE%3E%3C%2FMAXIMIZE%3E%3C%2FGET%3E%3C%2FSELECT%3E%3C%2FMARKERS%3E%3C%2FPASTE%3E%3C%2FNEW%3E%3C%2FMAKE%3E%3C%2FCOMBINE%3E%3C%2FFACTOR%3E%3C%2FITEM%3E%3C%2FMANAGE%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CCODE%20class%3D%22%20language-jsl%22%3EChanging%20Manage%20Limits%20()%20to%20Manage%20Spec%20Limits%20()%20gives%20me%20another%20error.%20%3C%2FCODE%3E%3C%2FP%3E%3CP%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Neo_0-1726217735617.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726217735617.png%22%20style%3D%22width%3A%20385px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726217735617.png%22%20style%3D%22width%3A%20385px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Neo_0-1726217735617.png%22%20style%3D%22width%3A%20385px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F68217i191CDFCAD2681B08%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Neo_0-1726217735617.png%22%20alt%3D%22Neo_0-1726217735617.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FCODE%3E%3C%2FP%3E%3CP%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%20%3C%2FCODE%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-798523%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ER%C3%A9%26nbsp%3B%3A%20Comment%20obtenir%20les%20limites%20de%20sp%C3%A9cifications%20dans%20des%20colonnes%20s%C3%A9par%C3%A9es%20dans%20un%20tableau%20r%C3%A9capitulatif%20en%205%20points%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798523%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EPeut-%C3%AAtre%20que%20cela%20ne%20fonctionne%20pas%20dans%20JMP16.2.%20Vous%20devez%20effectuer%20diff%C3%A9rents%20types%20de%20v%C3%A9rifications%20pour%20les%20tables.%20Si%20je%20me%20souviens%20bien%2C%20Get%20Data%20Table%20List()%20est%20une%20option%20assez%20robuste%20et%20la%20derni%C3%A8re%20table%20est%20toujours%20la%20premi%C3%A8re%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-798615%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ER%C3%A9%26nbsp%3B%3A%20Comment%20obtenir%20les%20limites%20de%20sp%C3%A9cifications%20dans%20des%20colonnes%20s%C3%A9par%C3%A9es%20dans%20un%20tableau%20r%C3%A9capitulatif%20en%205%20points%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798615%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EJ'ai%20modifi%C3%A9%20le%20code%20pour%20%C3%A9liminer%20la%20section%20G%C3%A9rer%20les%20limites%20et%20la%20remplacer%20par%20un%20simple%20morceau%20de%20JSL%20qui%20cr%C3%A9e%20une%20table%20de%20limites%20en%20lisant%20les%20limites%20de%20la%20table%20d'origine.%20Voyez%20si%20cela%20fonctionne%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(%201%20)%3B%0AClear%20Log()%3B%0Adt%20%3D%20Open(%20%22%24SAMPLE_DATA%2FSemiconductor%20Capability.jmp%22%20)%3B%0Acol_names%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20Column%20Group(%20%22Processes%22%20)%3B%0A%0A(tab%20%3D%20dt%20%26lt%3B%26lt%3B%20Tabulate(%0A%09Show%20Control%20Panel(%200%20)%2C%0A%09Add%20Table(%0A%09%09Column%20Table(%20Statistics(%20Min%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Mean%2C%20Median%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Max%20)%20)%2C%0A%09%09Column%20Table(%20Statistics(%20Std%20Dev%20)%20)%2C%0A%09%09Row%20Table(%0A%09%09%09Grouping%20Columns(%20%3Alot_id%2C%20%3Awafer%2C%20%3AWafer%20ID%20in%20lot%20ID%20)%2C%0A%09%09%09Analysis%20Columns(%0A%09%09%09%09Eval(%20col_names%20)%0A%0A%09%09%09)%0A%09%09)%0A%09)%0A))%20%26lt%3B%26lt%3B%20Make%20Into%20Data%20Table%3B%0AdtTab%20%3D%20current%20data%20table()%3B%0Atab%20%26lt%3B%26lt%3B%20close%20window%3B%0A%0AprocCols%20%3D%20Associative%20Array(dtTab%3AAnalysis%20Columns%20%26lt%3B%26lt%3B%20get%20values)%20%26lt%3B%26lt%3B%20get%20keys%3B%0A%2F%2F%20Create%20a%20limits%20table%0AdtLimits%20%3D%20new%20table(%22Limits%22%2C%0A%09new%20column(%22Variable%22%2C%20character)%2C%0A%09new%20column(%22LSL%22)%2C%0A%09New%20column(%22Target%22)%2C%0A%09New%20column(%22USL%22)%0A)%3B%0A%0AFor%20Each(%7Bcol%7D%2C%20procCols%2C%0A%09specs%20%3D%20column(dt%2C%20col)%20%26lt%3B%26lt%3B%20get%20property(%22Spec%20Limits%22)%3B%0A%09if(isList(specs)%2C%0A%09%09dtLimits%20%26lt%3B%26lt%3B%20add%20rows(1)%3B%0A%09%09dtLimits%3AVariable%5Bnrows(dtLimits)%5D%20%3D%20col%3B%0A%09%09dtLimits%3ALSL%5Bnrows(dtLimits)%5D%20%3D%20specs%5B%22LSL%22%5D%3B%0A%09%09dtLimits%3ATarget%5Bnrows(dtLimits)%5D%20%3D%20specs%5B%22Target%22%5D%3B%0A%09%09dtLimits%3AUSL%5Bnrows(dtLimits)%5D%20%3D%20specs%5B%22USL%22%5D%3B%0A%09)%0A)%3B%0A%0AdtTab%20%26lt%3B%26lt%3B%20Update(%0A%09with(%20dtLimits%20)%2C%0A%09Match%20Columns(%20%3AAnalysis%20Columns%20%3D%20%3AVariable%20)%2C%0A%09Add%20Columns%20from%20Update%20Table(%20%3ALSL%2C%20%3ATarget%2C%20%3AUSL)%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
Neo
Neo
Level VI

How to get spec limits in separate columns in 5 point summary table?

The example script below gets me the 5 number summary in the format I need. However, I would also like to get the spec limits for each parameter (under Analysis Columns) , LSL and USL, in two separate columns in the final "Summary" data table? How to get this via JSL?

Also, is a another/better way to do what I am need without using Tabulate ()?

Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group( "Processes" );

(dt << Tabulate(
	Show Control Panel( 0 ),
	Add Table(
		Column Table( Statistics( Min ) ),
		Column Table( Statistics( Mean, Median ) ),
		Column Table( Statistics( Max ) ),
		Column Table( Statistics( Std Dev ) ),
		Row Table(
			Grouping Columns( :lot_id, :wafer, :Wafer ID in lot ID ),
			Analysis Columns(
				Eval( col_names )

			)
		)
	)
)) << Make Into Data Table;

 

When it's too good to be true, it's neither
6 REPLIES 6
txnelson
Super User

Re: How to get spec limits in separate columns in 5 point summary table?

You can use the Manage Limits system to do what you want

Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group( "Processes" );

(tab = dt << Tabulate(
	Show Control Panel( 0 ),
	Add Table(
		Column Table( Statistics( Min ) ),
		Column Table( Statistics( Mean, Median ) ),
		Column Table( Statistics( Max ) ),
		Column Table( Statistics( Std Dev ) ),
		Row Table(
			Grouping Columns( :lot_id, :wafer, :Wafer ID in lot ID ),
			Analysis Columns(
				Eval( col_names )

			)
		)
	)
)) << Make Into Data Table;
dtTab = current data table();
tab << close window;

procCols = Associative Array(dtTab:Analysis Columns << get values) << get keys;
obj = dt << Manage Limits(
	Process Variables ( eval(procCols) )
);
obj << Save to Tall Limits Table;
dtLimits = current data table();
obj << close window;
try( window("Consistency Problem") << close window );

dtTab << Update(
	with( dtLimits ),
	Match Columns( :Analysis Columns = :Variable ),
	Add Columns from Update Table( :LSL, :Target, :USL)
);

txnelson_0-1726066776333.png

 

Jim
Neo
Neo
Level VI

Re: How to get spec limits in separate columns in 5 point summary table?

@txnelson Thanks. I get an error  in my JMP 16.2

Neo_0-1726142696152.png

 

When it's too good to be true, it's neither
jthi
Super User

Re: How to get spec limits in separate columns in 5 point summary table?

Might be enough if you use variables instead of relying on current data table. At least in JMP17.2 both tabulate << make into data table and << save tall limits table return reference to the table

Names Default To Here(1);
Clear Log();
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
col_names = dt << Get Column Group("Processes");

tab = dt << Tabulate(
	Show Control Panel(0),
	Add Table(
		Column Table(Statistics(Min)),
		Column Table(Statistics(Mean, Median)),
		Column Table(Statistics(Max)),
		Column Table(Statistics(Std Dev)),
		Row Table(
			Grouping Columns(:lot_id, :wafer, :Wafer ID in lot ID),
			Analysis Columns(
				Eval(col_names)

			)
		)
	)
);

dttab = tab << Make Into Data Table;
tab << close window;

procCols = Associative Array(dtTab:Analysis Columns << get values) << get keys;
obj = dt << Manage Limits(Process Variables(Eval(procCols)));
dtlimits = obj << Save to Tall Limits Table;
obj << close window;
Try(Window("Consistency Problem") << close window);

dtTab << Update(
	with(dtLimits),
	Match Columns(:Analysis Columns = :Variable),
	Add Columns from Update Table(:LSL, :Target, :USL)
);
-Jarmo
Neo
Neo
Level VI

Re: How to get spec limits in separate columns in 5 point summary table?

@jthi Get this error on JMP 16.2

Object 'Data Table' does not recognize the message 'Manage Limits'; 
perhaps you mean one of these: <<Manage Spec Limits <<Item Analysis <<Factor Analysis <<Combine Columns... <<Make Indicator Columns... <<New Columns... <<Paste Columns <<Markers <<Select Matching Cells <<Get Rows <<Maximize Display <<Move Scripts <<Rename Table Script <<Matched Pairs <<Multivariate <<Normal Mixtures <<Capability <<Parallel Plot. There is no other opened data table to update the current data table. Empty()

Changing Manage Limits () to Manage Spec Limits () gives me another error. 

Neo_0-1726217735617.png

 

When it's too good to be true, it's neither
jthi
Super User

Re: How to get spec limits in separate columns in 5 point summary table?

Maybe this doesn't work in JMP16.2. You have to perform different types of checks for the tables. If I remember correctly Get Data Table List() is fairly robust option and the latest table is always first

-Jarmo
txnelson
Super User

Re: How to get spec limits in separate columns in 5 point summary table?

I changed the code to eliminate the Manage Limits section and to change it to a simple piece of JSL that creates a limit table by reading the limits from the original table.  See if this works

Names Default To Here( 1 );
Clear Log();
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
col_names = dt << Get Column Group( "Processes" );

(tab = dt << Tabulate(
	Show Control Panel( 0 ),
	Add Table(
		Column Table( Statistics( Min ) ),
		Column Table( Statistics( Mean, Median ) ),
		Column Table( Statistics( Max ) ),
		Column Table( Statistics( Std Dev ) ),
		Row Table(
			Grouping Columns( :lot_id, :wafer, :Wafer ID in lot ID ),
			Analysis Columns(
				Eval( col_names )

			)
		)
	)
)) << Make Into Data Table;
dtTab = current data table();
tab << close window;

procCols = Associative Array(dtTab:Analysis Columns << get values) << get keys;
// Create a limits table
dtLimits = new table("Limits",
	new column("Variable", character),
	new column("LSL"),
	New column("Target"),
	New column("USL")
);

For Each({col}, procCols,
	specs = column(dt, col) << get property("Spec Limits");
	if(isList(specs),
		dtLimits << add rows(1);
		dtLimits:Variable[nrows(dtLimits)] = col;
		dtLimits:LSL[nrows(dtLimits)] = specs["LSL"];
		dtLimits:Target[nrows(dtLimits)] = specs["Target"];
		dtLimits:USL[nrows(dtLimits)] = specs["USL"];
	)
);

dtTab << Update(
	with( dtLimits ),
	Match Columns( :Analysis Columns = :Variable ),
	Add Columns from Update Table( :LSL, :Target, :USL)
);
Jim