cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Try the Materials Informatics Toolkit, which is designed to easily handle SMILES data. This and other helpful add-ins are available in the JMP® Marketplace
%3CLINGO-SUB%20id%3D%22lingo-sub-797873%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%C2%BFC%C3%B3mo%20obtener%20l%C3%ADmites%20de%20especificaciones%20en%20columnas%20separadas%20en%20una%20tabla%20de%20resumen%20de%205%20puntos%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-797873%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EEl%20script%20de%20ejemplo%20que%20aparece%20a%20continuaci%C3%B3n%20me%20proporciona%20el%20resumen%20de%205%20n%C3%BAmeros%20en%20el%20formato%20que%20necesito.%20Sin%20embargo%2C%20tambi%C3%A9n%20me%20gustar%C3%ADa%20obtener%20los%20l%C3%ADmites%20de%20especificaci%C3%B3n%20para%20cada%20par%C3%A1metro%20(en%20Columnas%20de%20an%C3%A1lisis)%2C%20LSL%20y%20USL%2C%20en%20dos%20columnas%20separadas%20en%20la%20tabla%20de%20datos%20final%20%22Resumen%22.%20%C2%BFC%C3%B3mo%20puedo%20obtener%20esto%20a%20trav%C3%A9s%20de%20JSL%3F%3C%2FP%3E%3CP%3EAdem%C3%A1s%2C%20%C2%BFexiste%20otra%20forma%20mejor%20de%20hacer%20lo%20que%20necesito%20sin%20usar%20Tabulate()%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%3EAutomatizaci%C3%B3n%20y%20scripting%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EVentanas%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%3ERe%3A%20%C2%BFC%C3%B3mo%20obtener%20l%C3%ADmites%20de%20especificaciones%20en%20columnas%20separadas%20en%20una%20tabla%20de%20resumen%20de%205%20puntos%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-797890%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EPuedes%20utilizar%20el%20sistema%20de%20Gesti%C3%B3n%20de%20L%C3%ADmites%20para%20hacer%20lo%20que%20quieras%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%3ERe%3A%20%C2%BFC%C3%B3mo%20obtener%20l%C3%ADmites%20de%20especificaciones%20en%20columnas%20separadas%20en%20una%20tabla%20de%20resumen%20de%205%20puntos%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%20Gracias.%20Me%20aparece%20un%20error%20en%20mi%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%3ERe%3A%20%C2%BFC%C3%B3mo%20obtener%20l%C3%ADmites%20de%20especificaciones%20en%20columnas%20separadas%20en%20una%20tabla%20de%20resumen%20de%205%20puntos%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798333%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EPuede%20ser%20suficiente%20si%20utiliza%20variables%20en%20lugar%20de%20depender%20de%20la%20tabla%20de%20datos%20actual.%20Al%20menos%20en%20JMP17.2%2C%20tanto%20tabulate%20%26lt%3B%26lt%3B%20make%20into%20data%20table%20como%20%26lt%3B%26lt%3B%20save%20tall%20limits%20table%20devuelven%20una%20referencia%20a%20la%20tabla.%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%3ERe%3A%20%C2%BFC%C3%B3mo%20obtener%20l%C3%ADmites%20de%20especificaciones%20en%20columnas%20separadas%20en%20una%20tabla%20de%20resumen%20de%205%20puntos%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%20Me%20aparece%20este%20error%20en%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%3ERe%3A%20%C2%BFC%C3%B3mo%20obtener%20l%C3%ADmites%20de%20especificaciones%20en%20columnas%20separadas%20en%20una%20tabla%20de%20resumen%20de%205%20puntos%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798523%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ETal%20vez%20esto%20no%20funcione%20en%20JMP16.2.%20Debes%20realizar%20distintos%20tipos%20de%20comprobaciones%20para%20las%20tablas.%20Si%20no%20recuerdo%20mal%2C%20Get%20Data%20Table%20List()%20es%20una%20opci%C3%B3n%20bastante%20s%C3%B3lida%20y%20la%20tabla%20m%C3%A1s%20reciente%20siempre%20es%20la%20primera.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-798615%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20%C2%BFC%C3%B3mo%20obtener%20l%C3%ADmites%20de%20especificaciones%20en%20columnas%20separadas%20en%20una%20tabla%20de%20resumen%20de%205%20puntos%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798615%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ECambi%C3%A9%20el%20c%C3%B3digo%20para%20eliminar%20la%20secci%C3%B3n%20de%20administraci%C3%B3n%20de%20l%C3%ADmites%20y%20cambiarlo%20por%20un%20fragmento%20simple%20de%20JSL%20que%20crea%20una%20tabla%20de%20l%C3%ADmites%20leyendo%20los%20l%C3%ADmites%20de%20la%20tabla%20original.%20Vea%20si%20esto%20funciona%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