Было бы хорошо конкретизировать ваш вопрос немного подробнее.Вы всегда ожидаете, что это будут плавающие столбцы?Будет ли в таблице много столбцов?Будут ли смешаны столбцы string / sym, что может усложнить ситуацию?Если в вашей таблице небольшое количество столбцов, вы можете просто обновить
q)show t
col1 col2 col3
--------------
20 1 100
40 2 200
30 2 0w
0w 1 300
q)inftonull:{(x where x=0w):0n;x}
q)update inftonull col1, inftonull col3 from t
col1 col2 col3
--------------
20 2 100
40 1 200
30 0
3 300
Если вы думаете, что имена столбцов могут измениться или иметь очень большое количество столбцов, вы можете попробовать функциональное обновление (где вы можетепередать имена столбцов в качестве параметров)
q){![t;();0b;x!inftonull,/:x,:()]}`col1`col3
col1 col2 col3
--------------
20 1 100
40 2 200
30 2
1 300
Если ваша таблица состоит только из числовых данных, что-то вроде
q)flip{(x where x=.Q.t[type x]$0w):x 0N;x}each flip t
col1 col2 col3
--------------
20 2 100
40 1 200
30 0
3 300
Может работать, что пытается учесть тот факт, что числовые данные имеютразличные виды.Если ваши данные будут содержать столбцы string / sym, последний пример не будет работать