cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-797873%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EWie%20erh%C3%A4lt%20man%20Spezifikationsgrenzen%20in%20separaten%20Spalten%20einer%205-Punkte-Zusammenfassungstabelle%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-797873%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EDas%20Beispielskript%20unten%20liefert%20mir%20die%205-Zahlen-Zusammenfassung%20im%20von%20mir%20ben%C3%B6tigten%20Format.%20Ich%20m%C3%B6chte%20jedoch%20auch%20die%20Spezifikationsgrenzen%20f%C3%BCr%20jeden%20Parameter%20(unter%20%E2%80%9EAnalysespalten%E2%80%9C)%2C%20LSL%20und%20USL%2C%20in%20zwei%20separaten%20Spalten%20in%20der%20endg%C3%BCltigen%20%E2%80%9EZusammenfassung%E2%80%9C-Datentabelle%20erhalten.%20Wie%20bekomme%20ich%20dies%20%C3%BCber%20JSL%3F%3C%2FP%3E%3CP%3EGibt%20es%20au%C3%9Ferdem%20eine%20andere%2Fbessere%20M%C3%B6glichkeit%2C%20das%20zu%20tun%2C%20was%20ich%20brauche%2C%20ohne%20Tabulate()%20zu%20verwenden%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%3EAutomatisierung%20und%20Skripting%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EWindows%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%3EBetreff%3A%20Wie%20erhalte%20ich%20Spezifikationsgrenzen%20in%20separaten%20Spalten%20in%20einer%205-Punkte-Zusammenfassungstabelle%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-797890%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ESie%20k%C3%B6nnen%20das%20System%20%E2%80%9ELimits%20verwalten%E2%80%9C%20verwenden%2C%20um%20zu%20tun%2C%20was%20Sie%20wollen%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%3EBetreff%3A%20Wie%20erhalte%20ich%20Spezifikationsgrenzen%20in%20separaten%20Spalten%20in%20einer%205-Punkte-Zusammenfassungstabelle%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%20Danke.%20Ich%20bekomme%20einen%20Fehler%20in%20meinem%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%3EBetreff%3A%20Wie%20erhalte%20ich%20Spezifikationsgrenzen%20in%20separaten%20Spalten%20in%20einer%205-Punkte-Zusammenfassungstabelle%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798333%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EK%C3%B6nnte%20ausreichen%2C%20wenn%20Sie%20Variablen%20verwenden%2C%20anstatt%20sich%20auf%20die%20aktuelle%20Datentabelle%20zu%20verlassen.%20Zumindest%20in%20JMP17.2%20geben%20sowohl%20tabellieren%20%26lt%3B%26lt%3B%20in%20Datentabelle%20erstellen%20als%20auch%20%26lt%3B%26lt%3B%20Tabelle%20mit%20hohen%20Grenzwerten%20speichern%20einen%20Verweis%20auf%20die%20Tabelle%20zur%C3%BCck.%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%3EBetreff%3A%20Wie%20erhalte%20ich%20Spezifikationsgrenzen%20in%20separaten%20Spalten%20in%20einer%205-Punkte-Zusammenfassungstabelle%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%20Erhalten%20Sie%20diesen%20Fehler%20bei%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%3EBetreff%3A%20Wie%20erhalte%20ich%20Spezifikationsgrenzen%20in%20separaten%20Spalten%20in%20einer%205-Punkte-Zusammenfassungstabelle%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798523%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EVielleicht%20funktioniert%20das%20in%20JMP16.2%20nicht.%20Sie%20m%C3%BCssen%20verschiedene%20Arten%20von%20Pr%C3%BCfungen%20f%C3%BCr%20die%20Tabellen%20durchf%C3%BChren.%20Wenn%20ich%20mich%20richtig%20erinnere%2C%20ist%20Get%20Data%20Table%20List()%20eine%20ziemlich%20robuste%20Option%20und%20die%20neueste%20Tabelle%20ist%20immer%20zuerst%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-798615%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EBetreff%3A%20Wie%20erhalte%20ich%20Spezifikationsgrenzen%20in%20separaten%20Spalten%20in%20einer%205-Punkte-Zusammenfassungstabelle%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-798615%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EIch%20habe%20den%20Code%20ge%C3%A4ndert%2C%20um%20den%20Abschnitt%20%E2%80%9ELimits%20verwalten%E2%80%9C%20zu%20entfernen%20und%20ihn%20in%20ein%20einfaches%20JSL-St%C3%BCck%20zu%20%C3%A4ndern%2C%20das%20eine%20Limittabelle%20erstellt%2C%20indem%20es%20die%20Limits%20aus%20der%20Originaltabelle%20liest.%20Sehen%20Sie%2C%20ob%20das%20funktioniert%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

Recommended Articles