Это трудно сделать со значением типа NA
, потому что q предпочитает, чтобы векторы были одинакового типа. Предполагая, что ваш столбец size
является типом цифр c, а не символом, с которым вы столкнетесь.
Я бы посоветовал заполнить какое-нибудь значение чисел c заполнением ^ оператор. Например, чтобы заполнить ноль в качестве значения по умолчанию:
q)res:select customer,date,product,orderId,version,size from tableA where date=2020.04.08,product in (`Derivative)
q)update 0^size from res
customer date product orderId version size
-------------------------------------------------
XYZ fund 4/8/2020 Derivative 1 6 0
XYZ fund 4/8/2020 Derivative 2 6 1000
XYZ fund 4/8/2020 Derivative 3 4 0
Если важно использовать значение NA
, вы можете привести столбец к типу символа и заполнить `NA
:
q)res:select customer,date,product,orderId,version,size from tableA where date=2020.04.08,product in (`Derivative)
q)update `NA^`$string size from res
customer date product orderId version size
-------------------------------------------------
XYZ fund 4/8/2020 Derivative 1 6 NA
XYZ fund 4/8/2020 Derivative 2 6 1000
XYZ fund 4/8/2020 Derivative 3 4 NA
Недостатком этого является то, что вы больше не сможете выполнять операции с цифрами c над столбцом без предварительного возврата к типу цифры c:
q)select sum size from res
'type
[0] select sum size from res
q)select sum "J"$string size from res
size
----
1000