KX Community

Find answers, ask questions, and connect with our KX Community around the world.
KX Community Guidelines

Home Forums kdb+ Linking vector columns

  • Linking vector columns

    Posted by mg4 on June 30, 2022 at 12:00 am

    Hi,

    Is there a way to link vector columns so that when we do something like asc, the corresponding column will also re-arrage:

    tbl:([] sVec:((`b`c`a);(`c`a`b);(`a`b`c));sNum:((2 3 1);(3 1 2);(1 2 3))); tbl 
    sVec sNum 
    ----------- 
    b c a 2 3 1 
    c a b 3 1 2 
    a b c 1 2 3 
    
    update sVec:asc'[sVec] from tbl 
    sVec sNum 
    ----------- 
    a b c 2 3 1 
    a b c 3 1 2 
    a b c 1 2 3 
    
    Desired output (Where each symbol is linked to number in same vector position): tbl1 
    sVec sNum 
    ----------- 
    a b c 1 2 3 
    a b c 1 2 3 
    a b c 1 2 3

     

    Many thanks!

    mg4 replied 8 months, 1 week ago 2 Members · 1 Reply
  • 1 Reply
  • rocuinneagain

    Member
    June 30, 2022 at 12:00 am

    iasc gives you the sorted idexes which you can use

    q)update sVec:sVec(@)'iasc each sNum,asc each sNum from tbl 
    sVec sNum 
    ----------- 
    a b c 1 2 3 
    a b c 1 2 3 
    a b c 1 2 3

     

Log in to reply.