Subsetting a subset of ColumnsHi All,
1. I have here a raw prober robot logs with continous by-time data per seconds of its movement executions a record of SiteX data (site0~7 this is basically a fixed hardware that touches a wafer), it records an X & Y and a BIN it touched down.
2. One row is one touch-down (of site0-7 ) on a wafer. However this raw format is hard to manipulate unless I do a subsetting and concatenating. See attached JMP raw data
Needed help:
1. I want to build a script that auto-subset the site0-7 columns and concatenate it like below.
2. Then I want to build a wafer map, that will track the sequence of touches the robot made on the wafer ove time continuous. See below table I want to make:
Anyone have idea? Thanks
| Column 1 | Column 2 | Column 12 | Column 13 | Column 14 | Column 15 | Column 16 | Column 17 | Column 18 | Column 19 |
| 8/14/2018 | PM 11:59:38 | Site0 | X | 29 | Y | 27 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site0 | X | 29 | Y | 25 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site0 | X | 30 | Y | 25 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site0 | X | 30 | Y | 27 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site0 | X | 34 | Y | 17 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site0 | X | 34 | Y | 18 | Pass | Bin | 1 |
| 8/14/2018 | PM 11:59:38 | Site1 | X | 28 | Y | 26 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site1 | X | 28 | Y | 24 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site1 | X | 29 | Y | 24 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site1 | X | 29 | Y | 26 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site1 | X | 33 | Y | 16 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site1 | X | 33 | Y | 17 | Pass | Bin | 1 |
| 8/14/2018 | PM 11:59:38 | Site2 | X | 27 | Y | 25 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site2 | X | 27 | Y | 23 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site2 | X | 28 | Y | 23 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site2 | X | 28 | Y | 25 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site2 | X | 32 | Y | 15 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site2 | X | 32 | Y | 16 | Pass | Bin | 1 |
| 8/14/2018 | PM 11:59:38 | Site3 | X | 26 | Y | 24 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site3 | X | 26 | Y | 22 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site3 | X | 27 | Y | 22 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site3 | X | 27 | Y | 24 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site3 | X | 31 | Y | 14 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site3 | X | 31 | Y | 15 | Pass | Bin | 1 |
| 8/14/2018 | PM 11:59:38 | Site4 | X | 25 | Y | 23 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site4 | X | 25 | Y | 21 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site4 | X | 26 | Y | 21 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site4 | X | 26 | Y | 23 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site4 | X | 30 | Y | 13 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site4 | X | 30 | Y | 14 | Pass | Bin | 1 |
| 8/14/2018 | PM 11:59:38 | Site5 | X | 24 | Y | 22 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site5 | X | 24 | Y | 20 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site5 | X | 25 | Y | 20 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site5 | X | 25 | Y | 22 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site5 | X | 29 | Y | 12 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site5 | X | 29 | Y | 13 | Pass | Bin | 1 |
| 8/14/2018 | PM 11:59:38 | Site6 | X | 23 | Y | 21 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site6 | X | 23 | Y | 19 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site6 | X | 24 | Y | 19 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site6 | X | 24 | Y | 21 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site6 | X | 28 | Y | 11 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site6 | X | 28 | Y | 12 | Pass | Bin | 1 |
| 8/14/2018 | PM 11:59:38 | Site7 | X | 22 | Y | 20 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:04 | Site7 | X | 22 | Y | 18 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:30 | Site7 | X | 23 | Y | 18 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:00:56 | Site7 | X | 23 | Y | 20 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:22 | Site7 | X | 27 | Y | 10 | Pass | Bin | 1 |
| 8/15/2018 | AM 12:01:48 | Site7 | X | 27 | Y | 11 | Pass | Bin | 1 |
Re: Subsetting a subset of ColumnsThank you, it works.
Re: Subsetting a subset of ColumnsThe cause of the error is that older versions of JMP were not consistent with the meessage << set. In JMP 14 it is much more consistent.
The error occured because the message for jmp 14 does not work in JMP 12. Then the get column names for character columns was only 59 not 64 so idx (which is 1::64) threw and error. I modified the script to use the current data table and used the older data type message.
column(dt,i) << set data type("Character") //jmp 14
column(dt,i) << data type("Character") //jmp12
Re: Subsetting a subset of ColumnsJMP 12.0.1 (32bit)
Re: Subsetting a subset of ColumnsI just ran the script on your new table and it ran perfectly. Which version of JMP are you using?
Re: Subsetting a subset of ColumnsFind attached
Re: Subsetting a subset of Columnsload your new table.
Re: Subsetting a subset of ColumnsHi gzmorgan0,
Thanks, I'm studying the codes,
I've deleted a Column 84 to 90 because I do not need this Col, only the site0-7 Col12-Col82 needs to be stacked due to its the usable same format. Sorry I didn't noticed at 1st.
I rerun the script again after deleting Col84-90 but got an error after:
idx = 1::ns*8;
cnames = (dt << get column names(character, "string"))[idx]; //error here
Error in jsl debugger
"Subscript Range in access or evaluation of 'Subscript' , (dt << get column names( character, "string" ))[/*###*/idx]"
I break the debugger to check at instance the raw data table, some Columns attribute were not changed to data type "character"
So I think because idx = 1::ns*8, index is 1~64 expects cnames count to be less than or equal to this index?
cnames Col name holder still stuck to this:
cnames={"Col12~Col90}
Hope you can still help me on this error.
Re: Subsetting a subset of ColumnsAttached is a script that uses the JMP Table Series Stack. From experience, people always state the table will alway have the same format, but that is not the case. Note several of site columns were numeric and others were not.
Try the attached script on your prober table. Note that:
- the table name is hard-coded you might want to change that to Current Data Table(), or change it to an open.
- ns is set to 8 for the scenario of sites 0-7. Change appropriately for other sites.
- run the script to just after line 24. You should verify the data stacked appropriately. Also you might want to sort it.
You should learn and understand each line of this script. You wil not be able to maintain it, if you do not understand it.