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-78193%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78193%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E5%A4%A7%E5%AE%B6%E5%A5%BD%EF%BC%81%3C%2FP%3E%3CP%3E%3CBR%20%2F%3Eexcel%E4%B8%AD%E5%8F%AF%E4%BB%A5%E7%94%A8%E2%80%9C%3Doffset(%2Cmatch(%2C%2C)-1%2Cmatch(%2C%2C)-1%2C%2C)%E2%80%9D%E5%87%BD%E6%95%B8%E9%80%B2%E8%A1%8C%E8%A8%88%E7%AE%97%EF%BC%8C%E4%BD%86%E6%95%B8%E6%93%9A%E9%87%8F%E5%A4%A7%E6%99%82%E9%80%9F%E5%BA%A6%E8%BC%83%E6%85%A2%E3%80%82%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%E5%A6%82%E4%BD%95%E7%94%A8%20JSL%20%E5%81%9A%E5%88%B0%E9%80%99%E4%B8%80%E9%BB%9E%EF%BC%9F%E8%AC%9D%E8%AC%9D%EF%BC%81%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%222018-10-09_16-19-31.png%22%20style%3D%22width%3A%20801px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222018-10-09_16-19-31.png%22%20style%3D%22width%3A%20801px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222018-10-09_16-19-31.png%22%20style%3D%22width%3A%20801px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F12722iB925EE28EE8406EC%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%222018-10-09_16-19-31.png%22%20alt%3D%222018-10-09_16-19-31.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78278%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78278%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E6%98%AF%E7%9A%84%EF%BC%8Cexcel%E5%9C%A810000%E8%A1%8C%E4%BB%A5%E5%85%A7%E4%BD%BF%E7%94%A8%E5%B7%A5%E4%BD%9C%E8%A1%A8%E5%87%BD%E6%95%B8%E5%BE%88%E6%96%B9%E4%BE%BF%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%B6%85%E9%81%8E%2010%2C000%20%E8%A1%8C%E6%88%91%E7%BF%92%E6%85%A3%E6%96%BC%E4%BD%BF%E7%94%A8%20VBA%20%E5%AD%97%E5%85%B8%E5%9F%B7%E8%A1%8C%E6%AD%A4%E6%93%8D%E4%BD%9C%E3%80%82%E4%BD%86%E6%98%AF%E8%B6%85%E9%81%8E%20100%2C000%20%E8%A1%8C%E7%9A%84%E5%AD%97%E5%85%B8%E9%80%9F%E5%BA%A6%E5%BE%88%E6%85%A2%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E7%8F%BE%E5%9C%A8%E7%94%A8JMP%E7%9A%84%E9%80%99%E5%80%8B%E6%96%B9%E6%B3%95%EF%BC%8C%E9%81%8E%E5%8D%83%E8%90%AC%E8%A1%8C%E4%B9%9F%E5%BE%88%E5%BF%AB%E3%80%82%E8%AC%9D%E8%AC%9D%EF%BC%81%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78255%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78255%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E6%88%91%E7%9C%8B%E4%B8%8D%E5%87%BA%E6%82%A8%E4%B8%8A%E6%AC%A1%E5%9B%9E%E5%BE%A9%E4%B8%AD%E7%9A%84%E8%81%B2%E6%98%8E%E5%B0%8D%20JMP%20%E7%94%A8%E6%88%B6%E7%A4%BE%E5%8D%80%E6%9C%89%E4%BB%80%E9%BA%BC%E5%A5%BD%E8%99%95%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E2%80%9C%3CSPAN%3E%E5%9C%A8excel%E4%B8%AD%E7%94%A8%E5%AD%97%E5%85%B8%E4%B9%9F%E5%BE%88%E5%BF%AB%E2%80%A6%E2%80%A6Set%20d%20%3D%20CreateObject(%22Scripting.Dictionary%22)%3C%2FSPAN%3E%20%E2%80%9C%3C%2FP%3E%0A%3CP%3E%E4%BC%BC%E4%B9%8E%E9%80%99%E6%A8%A3%E7%9A%84%E8%A9%95%E8%AB%96%E6%94%BE%E5%9C%A8Excel%E8%AB%96%E5%A3%87%E4%B8%8A%E6%9B%B4%E5%90%88%E9%81%A9%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78254%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78254%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%AC%9D%E6%82%A8%E7%9A%84%E5%B9%AB%E5%8A%A9%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E5%9C%A8excel%E4%B8%AD%E7%94%A8%E5%AD%97%E5%85%B8%E4%B9%9F%E5%BE%88%E5%BF%AB%E2%80%A6%E2%80%A6Set%20d%20%3D%20CreateObject(%22Scripting.Dictionary%22)%3CBR%20%2F%3E%3CBR%20%2F%3E%E4%BD%86%E6%98%AF%E5%BF%85%E9%A0%88%E4%BB%A5%E4%B8%8D%E5%90%8C%E7%9A%84%E6%96%B9%E5%BC%8F%E5%AE%8C%E6%88%90%E8%B6%85%E9%81%8E%E4%B8%80%E7%99%BE%E8%90%AC%E8%A1%8C%E3%80%82%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78244%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78244%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E9%80%99%E8%A3%A1%E6%9C%89%E5%B9%BE%E7%A8%AE%E6%96%B9%E6%B3%95%EF%BC%8C%E5%8F%AF%E4%BB%A5%E5%A0%86%E7%96%8A%E5%8F%AF%E8%AE%8A%E6%95%B8%E9%87%8F%E7%9A%84%E5%88%97%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%82%A8%E4%BB%8A%E5%A4%A9%E5%9C%A8%20excel%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%8C%B9%E9%85%8D%EF%BC%8C%E9%82%A3%E9%BA%BC%E5%89%8D%E5%85%A9%E7%A8%AE%E6%96%B9%E6%B3%95%E4%B9%8B%E4%B8%80%E5%8F%AF%E8%83%BD%E6%9C%83%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2FIf%20the%20column%20positions%20do%20not%20change%0Ad3_1%20%3D%20d1%20%26lt%3B%26lt%3B%20Stack(%0A%20columns(%20Concat(%20%5B2%203%5D%2C%204%3A%3A10%20))%2C%0A%20Source%20Label%20Column(%20%22year%22%20)%2C%0A%20Stacked%20Data%20Column(%20%22data%22%20)%2C%0A%20Drop%20all%20other%20columns(%201%20)%2C%0A%20Keep(%20%3Astate%20)%0A)%3B%0A%0A%0A%2F%2FIf%20you%20want%20all%20columns%0Ad1_clean%20%3D%20(%20d1%20%26lt%3B%26lt%3B%20Subset(%20All%20rows%2C%20columns(%201%3A%3A10%20)%20)%20)%3B%0Ad3_2%20%3D%20d1_clean%20%26lt%3B%26lt%3B%20Stack(%0A%20columns(%202%3A%3A%20ncol(d1_clean)%20)%2C%0A%20Source%20Label%20Column(%20%22year%22%20)%2C%0A%20Stacked%20Data%20Column(%20%22data%22%20)%2C%0A%20Drop%20all%20other%20columns(%201%20)%2C%0A%20Keep(%20%3Astate%20)%0A)%3B%0A%0A%0A%2F%2FIf%20the%20column%20names%20are%20in%20a%20specific%20format%0A%0A%2F%2F%20-%20get%20column%20names%0Acn%20%3D%20d1%20%26lt%3B%26lt%3B%20Get%20Column%20Names(%20string%20)%3B%0A%0A%2F%2F%20-%20Find%20which%20columns%20match%20a%20format%0A%2F%2F%20%20%20(jmp%20does%20have%20some%20patter%20matching%20tools%20but%20I%20like%20regex%2C%20check%20out%20regexr.com)%0Amatches%20%3D%20repeat(0%2C%20N%20Items(cn))%3B%0Afor(c%3D1%2C%20c%26lt%3B%3D%20N%20Items(cn)%2C%20c%2B%2B%2C%20if(!is%20missing(Regex(cn%5Bc%5D%2C%20%22%5E%5Cd%2B%24%22))%2C%20matches%5Bc%5D%20%3D%201))%3B%0A%0A%2F%2F%20-%20Stack%0Ad3_3%20%3D%20d1%20%26lt%3B%26lt%3B%20Stack(%0A%20columns(%20loc(matches)%20)%2C%0A%20Source%20Label%20Column(%20%22year%22%20)%2C%0A%20Stacked%20Data%20Column(%20%22data%22%20)%2C%0A%20Drop%20all%20other%20columns(%201%20)%2C%0A%20Keep(%20%3Astate%20)%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78243%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78243%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E5%A6%82%E6%9E%9C%E9%80%99%E4%BA%9B%E5%88%97%E5%BE%88%E5%A4%9A%EF%BC%8C%E6%AF%94%E5%A6%82%E8%B6%85%E9%81%8E1000%E2%80%A6%E2%80%A6%E5%81%87%E8%A8%AD%E6%98%AF%E4%B8%80%E5%80%8B%E6%97%A5%E6%9C%9F%E3%80%82%3C%2FP%3E%3CP%3E%E9%80%99%E4%BA%9B%E5%88%97%E5%A6%82%E4%BD%95%E4%BB%A5%E8%AE%8A%E9%87%8F%E5%BE%AA%E7%92%B0%E7%9A%84%E5%BD%A2%E5%BC%8F%E5%AF%A6%E7%8F%BE%20d3%20%E8%A1%A8%E8%A8%AD%E7%BD%AE%E3%80%82%E8%AC%9D%E8%AC%9D%EF%BC%81%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%222018-10-09_22-12-53.png%22%20style%3D%22width%3A%20774px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222018-10-09_22-12-53.png%22%20style%3D%22width%3A%20774px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%222018-10-09_22-12-53.png%22%20style%3D%22width%3A%20774px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F12723i93E27CD3E395517E%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%222018-10-09_22-12-53.png%22%20alt%3D%222018-10-09_22-12-53.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78241%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78241%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%B9%B9%E5%BE%97%E5%A5%BD%EF%BC%81%E8%AC%9D%E8%AC%9D%EF%BC%81%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78240%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78240%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%E7%94%B1%E6%96%BC%E6%82%A8%E6%93%94%E5%BF%83%E5%A4%A7%E8%A1%A8%E7%9A%84%E9%80%9F%E5%BA%A6%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%89%B5%E5%BB%BA%E4%B8%80%E5%80%8B%E9%95%B7%E6%A0%BC%E5%BC%8F%E7%9A%84%E2%80%9C%E6%9F%A5%E6%89%BE%E8%A1%A8%E2%80%9D%EF%BC%8C%E9%80%99%E6%A8%A3%E6%AF%8F%E5%80%8B%E5%80%BC%E4%B8%80%E8%A1%8C%EF%BC%8C%E7%84%B6%E5%BE%8C%E4%BD%BF%E7%94%A8%20Join%20%E6%88%96%20Update%20%E9%80%B2%E8%A1%8C%E6%9F%A5%E6%89%BE%E3%80%82%E9%80%99%E6%98%AF%E5%AE%83%E7%9A%84%E6%A8%A3%E5%AD%90%EF%BC%9A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20default%20to%20here(%201%20)%3B%0A%0Ad1%20%3D%20Open(%20%22%24SAMPLE_DATA%2FPresidential%20Elections.jmp%22%20)%3B%0Ad2%20%3D%20New%20Table(%20%22offset%22%2C%0A%20Add%20Rows(%208%20)%2C%0A%20New%20Column(%20%22State%22%2C%0A%20%20Character%2C%0A%20%20%22Nominal%22%2C%0A%20%20Set%20Values(%0A%20%20%20%7B%22Wyoming%22%2C%20%22Montana%22%2C%20%22Montana%22%2C%20%22Alaska%22%2C%20%22Wisconsin%22%2C%20%22Nebraska%22%2C%20%22Nevada%22%2C%20%22Montana%22%7D%0A%20%20)%0A%20)%2C%0A%20New%20Column(%20%22year%22%2C%0A%20%20Character%2C%0A%20%20%22Ordinal%22%2C%0A%20%20Set%20Values(%20%7B%221988%22%2C%20%221988%22%2C%20%221988%22%2C%20%221992%22%2C%20%222000%22%2C%20%221992%22%2C%20%222004%22%2C%20%221980%22%7D%20)%0A%20)%2C%0A%20New%20Column(%20%22data%22%2C%0A%20%20Numeric%2C%0A%20%20%22Continuous%22%2C%0A%20%20Format(%20%22Fixed%20Dec%22%2C%2012%2C%201%20))%0A%0A)%3B%0A%0A%2F%2FMove%20data%20to%20a%20long%20format%0Ad3%20%3D%20d1%20%26lt%3B%26lt%3B%20Stack(%0A%20columns(%0A%20%20%3AName(%20%221980%22%20)%2C%0A%20%20%3AName(%20%221984%22%20)%2C%0A%20%20%3AName(%20%221988%22%20)%2C%0A%20%20%3AName(%20%221992%22%20)%2C%0A%20%20%3AName(%20%221996%22%20)%2C%0A%20%20%3AName(%20%222000%22%20)%2C%0A%20%20%3AName(%20%222004%22%20)%2C%0A%20%20%3AName(%20%222008%22%20)%2C%0A%20%20%3AName(%20%222012%22%20)%0A%20)%2C%0A%20Source%20Label%20Column(%20%22year%22%20)%2C%0A%20Stacked%20Data%20Column(%20%22data%22%20)%0A)%3B%0Ad3%20%26lt%3B%26lt%3B%20Set%20Name(%20%22Long%20format%22%20)%3B%0Ad3%3Ayear%20%26lt%3B%26lt%3B%20Set%20Modeling%20Type(%22Ordinal%22)%3B%0A%0A%2F%2F'Lookup'%20the%20values%3A%0Ad2%20%26lt%3B%26lt%3B%20Update(%20with(d3)%2C%20Match%20Columns(%20%3Astate%3D%3Astate%2C%20%3Ayear%3D%3Ayear%20)%2C%20Add%20Columns%20from%20Update%20table(%20None%20))%3B%0A%0Ad3%20%26lt%3B%26lt%3B%20Close%20window%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78195%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78195%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E6%A0%B9%E6%93%9A%E8%A1%A8%E2%80%9CPresidential%20Elections%E2%80%9D%E4%B8%AD%E7%9A%84%E6%95%B8%E6%93%9A%E8%A8%88%E7%AE%97%E8%A1%A8%E2%80%9Coffset%E2%80%9D%E4%B8%AD%E2%80%9Cdata%E2%80%9D%E7%9A%84%E5%80%BC%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%E8%AC%9D%E8%AC%9D%E4%BD%A0%EF%BC%81%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-78194%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9A%E5%A6%82%E4%BD%95%E8%A8%88%E7%AE%97%E8%88%87%20JSL%20%E7%9A%84%E5%8C%B9%E9%85%8D%EF%BC%9F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-78194%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3Ed1%20%3D%20Open(%20%22%24SAMPLE_DATA%2FPresidential%20Elections.jmp%22%20)%3B%3CBR%20%2F%3E%20d2%20%3D%20%E6%96%B0%E8%A1%A8(%20%22%E5%81%8F%E7%A7%BB%E9%87%8F%22%2C%3CBR%20%2F%3E%E6%B7%BB%E5%8A%A0%E8%A1%8C%EF%BC%888%EF%BC%89%EF%BC%8C%3CBR%20%2F%3E%E6%96%B0%E5%88%97%EF%BC%88%E2%80%9C%E7%8B%80%E6%85%8B%E2%80%9D%EF%BC%8C%3CBR%20%2F%3E%E7%89%B9%E9%BB%9E%EF%BC%8C%3CBR%20%2F%3E%20%E2%80%9C%E6%A8%99%E7%A8%B1%E2%80%9D%EF%BC%8C%3CBR%20%2F%3E%E8%A8%AD%E7%BD%AE%E5%80%BC%EF%BC%88%3CBR%20%2F%3E%20%7B%E2%80%9C%E6%87%B7%E4%BF%84%E6%98%8E%E2%80%9D%EF%BC%8C%E2%80%9C%E8%92%99%E5%A4%A7%E6%8B%BF%E2%80%9D%EF%BC%8C%E2%80%9C%E8%92%99%E5%A4%A7%E6%8B%BF%E2%80%9D%EF%BC%8C%E2%80%9C%E9%98%BF%E6%8B%89%E6%96%AF%E5%8A%A0%E2%80%9D%EF%BC%8C%E2%80%9C%E5%A8%81%E6%96%AF%E5%BA%B7%E6%98%9F%E2%80%9D%EF%BC%8C%E2%80%9C%E5%85%A7%E5%B8%83%E6%8B%89%E6%96%AF%E5%8A%A0%E5%B7%9E%E2%80%9D%EF%BC%8C%E2%80%9C%E5%85%A7%E8%8F%AF%E9%81%94%E2%80%9D%EF%BC%8C%E2%80%9C%E8%92%99%E5%A4%A7%E6%8B%BF%E2%80%9D%7D%3CBR%20%2F%3E%20)%3CBR%20%2F%3E%20)%2C%3CBR%20%2F%3E%E6%96%B0%E5%88%97%EF%BC%88%E2%80%9C%E5%B9%B4%E2%80%9D%EF%BC%8C%3CBR%20%2F%3E%E7%89%B9%E9%BB%9E%EF%BC%8C%3CBR%20%2F%3E%20%E2%80%9C%E6%A8%99%E7%A8%B1%E2%80%9D%EF%BC%8C%3CBR%20%2F%3E%E8%A8%AD%E7%BD%AE%E5%80%BC%EF%BC%88%7B%E2%80%9C1988%E2%80%9D%EF%BC%8C%E2%80%9C1988%E2%80%9D%EF%BC%8C%E2%80%9C1988%E2%80%9D%EF%BC%8C%E2%80%9C1992%E2%80%9D%EF%BC%8C%E2%80%9C2000%E2%80%9D%EF%BC%8C%E2%80%9C1992%E2%80%9D%EF%BC%8C%E2%80%9C2004%E2%80%9D%EF%BC%8C%E2%80%9C1980%E2%80%9D%7D%EF%BC%89%3CBR%20%2F%3E%20)%2C%3CBR%20%2F%3E%E6%96%B0%E5%88%97%EF%BC%88%E2%80%9C%E6%95%B8%E6%93%9A%E2%80%9D%EF%BC%8C%E5%AD%97%E7%AC%A6%EF%BC%8C%E2%80%9C%E6%A8%99%E7%A8%B1%E2%80%9D%EF%BC%8C%EF%BC%89%EF%BC%8C%3CBR%20%2F%3E%3CBR%20%2F%3E%20)%3B%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
lwx228
Level VIII

How to compute a match with JSL?

Hello, everyone!


In excel, "=offset(,match(,,)-1,match(,,)-1,,)" functions can be used to calculate, but the speed is slow when the data is large.

 

How to do this with JSL?Thank you!2018-10-09_16-19-31.png

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
ih
Super User (Alumni) ih
Super User (Alumni)

Re: How to compute a match with JSL?

Here are a few ways, to stack with a variable number of columns, if you are using match in excel today then one of the first two methds will likely work:

 

//If the column positions do not change
d3_1 = d1 << Stack(
	columns( Concat( [2 3], 4::10 )),
	Source Label Column( "year" ),
	Stacked Data Column( "data" ),
	Drop all other columns( 1 ),
	Keep( :state )
);


//If you want all columns
d1_clean = ( d1 << Subset( All rows, columns( 1::10 ) ) );
d3_2 = d1_clean << Stack(
	columns( 2:: ncol(d1_clean) ),
	Source Label Column( "year" ),
	Stacked Data Column( "data" ),
	Drop all other columns( 1 ),
	Keep( :state )
);


//If the column names are in a specific format

// - get column names
cn = d1 << Get Column Names( string );

// - Find which columns match a format
//   (jmp does have some patter matching tools but I like regex, check out regexr.com)
matches = repeat(0, N Items(cn));
for(c=1, c<= N Items(cn), c++, if(!is missing(Regex(cn[c], "^\d+$")), matches[c] = 1));

// - Stack
d3_3 = d1 << Stack(
	columns( loc(matches) ),
	Source Label Column( "year" ),
	Stacked Data Column( "data" ),
	Drop all other columns( 1 ),
	Keep( :state )
);

View solution in original post

9 REPLIES 9
lwx228
Level VIII

Re: How to compute a match with JSL?

d1 = Open( "$SAMPLE_DATA/Presidential Elections.jmp" );
d2 = New Table( "offset",
Add Rows( 8 ),
New Column( "State",
Character,
"Nominal",
Set Values(
{"Wyoming", "Montana", "Montana", "Alaska", "Wisconsin", "Nebraska", "Nevada", "Montana"}
)
),
New Column( "year",
Character,
"Nominal",
Set Values( {"1988", "1988", "1988", "1992", "2000", "1992", "2004", "1980"} )
),
New Column( "data", Character, "Nominal", ),

);
lwx228
Level VIII

Re: How to compute a match with JSL?

Calculate the value of "data" in table "offset" based on the data in table "Presidential Elections".


Thank you!
ih
Super User (Alumni) ih
Super User (Alumni)

Re: How to compute a match with JSL?

Since you are worried about speed with large tables, you might create a 'lookup table' in a long format so there is one row per value and then use with Join or Update to do the lookup.  Here is how that might look:

 

Names default to here( 1 );

d1 = Open( "$SAMPLE_DATA/Presidential Elections.jmp" );
d2 = New Table( "offset",
	Add Rows( 8 ),
	New Column( "State",
		Character,
		"Nominal",
		Set Values(
			{"Wyoming", "Montana", "Montana", "Alaska", "Wisconsin", "Nebraska", "Nevada", "Montana"}
		)
	),
	New Column( "year",
		Character,
		"Ordinal",
		Set Values( {"1988", "1988", "1988", "1992", "2000", "1992", "2004", "1980"} )
	),
	New Column( "data",
		Numeric,
		"Continuous",
		Format( "Fixed Dec", 12, 1 ))

);

//Move data to a long format
d3 = d1 << Stack(
	columns(
		:Name( "1980" ),
		:Name( "1984" ),
		:Name( "1988" ),
		:Name( "1992" ),
		:Name( "1996" ),
		:Name( "2000" ),
		:Name( "2004" ),
		:Name( "2008" ),
		:Name( "2012" )
	),
	Source Label Column( "year" ),
	Stacked Data Column( "data" )
);
d3 << Set Name( "Long format" );
d3:year << Set Modeling Type("Ordinal");

//'Lookup' the values:
d2 << Update( with(d3), Match Columns( :state=:state, :year=:year ), Add Columns from Update table( None ));

d3 << Close window;

 

 

lwx228
Level VIII

Re: How to compute a match with JSL?

good job !Thank you!
lwx228
Level VIII

Re: How to compute a match with JSL?

If these columns are many, such as more than 1000……Let's say it's a date.

how do these columns implement the d3 table setup in the form of a variate loop.Thank you!

2018-10-09_22-12-53.png

 

 

 

ih
Super User (Alumni) ih
Super User (Alumni)

Re: How to compute a match with JSL?

Here are a few ways, to stack with a variable number of columns, if you are using match in excel today then one of the first two methds will likely work:

 

//If the column positions do not change
d3_1 = d1 << Stack(
	columns( Concat( [2 3], 4::10 )),
	Source Label Column( "year" ),
	Stacked Data Column( "data" ),
	Drop all other columns( 1 ),
	Keep( :state )
);


//If you want all columns
d1_clean = ( d1 << Subset( All rows, columns( 1::10 ) ) );
d3_2 = d1_clean << Stack(
	columns( 2:: ncol(d1_clean) ),
	Source Label Column( "year" ),
	Stacked Data Column( "data" ),
	Drop all other columns( 1 ),
	Keep( :state )
);


//If the column names are in a specific format

// - get column names
cn = d1 << Get Column Names( string );

// - Find which columns match a format
//   (jmp does have some patter matching tools but I like regex, check out regexr.com)
matches = repeat(0, N Items(cn));
for(c=1, c<= N Items(cn), c++, if(!is missing(Regex(cn[c], "^\d+$")), matches[c] = 1));

// - Stack
d3_3 = d1 << Stack(
	columns( loc(matches) ),
	Source Label Column( "year" ),
	Stacked Data Column( "data" ),
	Drop all other columns( 1 ),
	Keep( :state )
);
lwx228
Level VIII

Re: How to compute a match with JSL?

Thank you very much for your help.


It's also quick to use a dictionary in excel……Set d = CreateObject("Scripting.Dictionary")

but more than a million lines will have to be done differently.
txnelson
Super User

Re: How to compute a match with JSL?

I don't see the benefit to the JMP User Community of the statement in your last reply,

     "It's also quick to use a dictionary in excel……Set d = CreateObject("Scripting.Dictionary")"

It seems that such a comment would be more appropriate on the Excel Discussion Forum

Jim
lwx228
Level VIII

Re: How to compute a match with JSL?

Yes, excel is convenient to use worksheet functions within 10,000 rows.

Over 10,000 rows I'm used to doing this with a VBA dictionary.But dictionaries over 100,000 are slow.


Now using this method of JMP, over 10 million lines are also fast.ThankS you!

Recommended Articles