You can create an untyped column by using below syntax:
t:([] a:(); b:(); c:())
However, the moment you get the first insert the types will be inferred from the first row you insert. Every successive insert that doesn’t align to the types of the first row will throw a type error. Apart from that, it’s pretty much one of the worst design decisions you can make. The power and speed comes from having typed columns and knowing how much memory needs to be assigned and knowing how big each memory block needs to be. Why not simply define the column as float? You can read about it here https://code.kx.com/q4m3/8_Tables/#82-empty-tables-and-schema
q)meta t
c| t f a
-| -----
a|
b|
c|
q)`t insert (1;2;4.0)</p><p><span style="font-size: 1rem;">,0</span><br></p><p>q)t</p><p><span style="font-size: 1rem;">a b c</span><br></p><p>-----</p><p>1 2 4</p><p>q)meta t</p><p><span style="font-size: 1rem;">c| t f a</span><br></p><p>-| -----</p><p>a| j</p><p>b| j</p><p>c| f</p><p>q)`t insert (1;2;3)
'type
[0] `t insert (1;2;3)
^