If your situation is more general and you want to remove everything before your first numeric then you could do something like below. You could further generalize to all columns with symbol type
q)show r1:update b:`${(first each where each x in .Q.n)_'x}string b from X
a b c
-------
1 11 10
2 22 20
3 33 30
q)show r2:@[X; exec c from meta X where t="s"; `${(first each where each x in .Q.n)_'x}string@]
a b c
-------
1 11 10
2 22 20
3 33 30
q)r1~r2
1b
Granted, I don't know what your set up is, but on my machine, this is quite quick. Not nearly as quick as your dictionary approach, but might be worth the sacrifice for the generality
q)\ts update b:`${(first each where each x in .Q.n)_'x}string b from X
69 12746848j