Еще один способ сделать это - использовать lj
.
q)t:([] n:til 10; Value:1+til 10; Code:10#`a`b`c`d`e)
q)tickers:enlist each "abcdf"
Создание keyed
таблицы kt
с использованием tickers
и coeffs
:
q)kt:([Code:`$tickers] coeffs:2 4 6 8 10 )
q)kt
Code| coeffs
----| ------
a | 2
b | 4
c | 6
d | 8
f | 10
Теперь присоединяется к t
с kt
q)t:t lj kt
q)t
n Value Code coeffs
-------------------
0 1 a 2
1 2 b 4
2 3 c 6
3 4 d 8
4 5 e
5 6 a 2
6 7 b 4
7 8 c 6
8 9 d 8
9 10 e
Обновление таблицы t
, где у нас есть non-null
coeff
значения
q)update Value:Value*coeffs from t where not null coeffs
n Value Code coeffs
-------------------
0 2 a 2
1 8 b 4
2 18 c 6
3 32 d 8
4 5 e
5 12 a 2
6 28 b 4
7 48 c 6
8 72 d 8
9 10 e
- С
lj
у вас будет дополнительный столбец coeffs
, который вы, возможно, захотите удалить.
- Это особенно полезно, когда у вас есть несколько сопоставлений (
tickers->coeffs
, tickers->delta
и т. Д.), Вам просто нужно создать одну таблицу со всеми сопоставлениями.