Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

trouble with rescaling function

I have a table t

t:([] x: 1 2 3 4 5; y: 5.1 2.4 3.3 4.5 1.5);
x y  
-----
1 5.1
2 2.4
3 3.3
4 4.5
5 1.5

and I’m trying to rescale the x and y rows of t such that the larger one becomes 1 and the other takes the value ceiling max(x;y)%min(x;y) as:

rescaledUnits:{[t]
    t:update l:max(x;y), s:min(x;y) from t;
    t:update a:ceiling l%s, ones:1 from t;
    t:update uc:ones, up:a where x>=y from t;
    t:update uc:a, up:ones where x<y from t;
    t
 };

but on calling it I get

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

show rescaledUnits[t]

q)

'length
    t:update a:ceiling l%s, one:1 from t;
    t:update uc:one, up:a where x>=y from t;
      ^
    t:update uc:a, up:one where x<y from t;

How do i fix the above function?

>Solution :

Your update statements are wrong

q)t:([] x: 1 2 3 4 5; y: 5.1 2.4 3.3 4.5 1.5)
q)t
x y
-----
1 5.1
2 2.4
3 3.3
4 4.5
5 1.5
q)rescaledUnits
{[t]
    t:update l:max(x;y), s:min(x;y) from t;
    t:update a:ceiling l%s, ones:1 from t;
    t:update uc:ones, up:a from t where x>=y ;
    t:update uc:a, up:ones from t where x<y ;
    t
 }
q)rescaledUnits[t]
x y   l   s   a ones uc up
--------------------------
1 5.1 5.1 1   6 1    6  1
2 2.4 2.4 2   2 1    2  1
3 3.3 3.3 3   2 1    2  1
4 4.5 4.5 4   2 1    2  1
5 1.5 5   1.5 4 1    1  4
q)

The where clause comes at the end. Q-SQL queries have the form of
select <cols> <by> from T<exp> <where>
You can read about it here
https://code.kx.com/q4m3/9_Queries_q-sql/

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading