w:(1 2;3 4;5 2); l:til count w; h:l+1;
show t:([] l; h; w);
l h w
-------
0 1 1 2
1 2 3 4
2 3 5 2
Tenho uma tabela t
com uma coluna w
que tem listas para linhas. Gostaria de manter apenas elementos em cada linha w
que estejam entre os valores l
e h
para cada linha da tabela.
A saída esperada é:
l h w
-------
0 1 ,1
1 2 ,
2 3 ,2
Eu tentei fazer
t:update w:w[where ((w>=l) and (w<=h))] from t;
mas falha com
'type
[0] t:update w:w[where ((w>=l) and (w<=h))] from t;
Você pode usar
within
( https://code.kx.com/q/ref/within )Sua tentativa original chegou perto. Aqui está a versão corrigida:
Você precisava considerar as colunas da tabela como listas (então você precisa dos iteradores
each
and each-both ('
).