我正在将 csv 文件导入到表中,但某些列的名称中有空格。无论如何,还是我需要在导入之前重命名列?
问问题
3663 次
4 回答
1
要从表 t 中的列名中删除空格:
t:xcol[`$ssr[;" ";""]each string cols t;t]
于 2014-02-21T16:09:45.080 回答
1
.Q.id
将删除所有非字母数字字符,并重命名任何干扰 q 命名空间的列。
例子:
q)flip(`$("a b c";"d e f";"name©"))!3#()
a b c d e f name©
------------------
与.Q.id
:
q).Q.id flip(`$("a b c";"d e f";"name©"))!3#()
abc def name
------------
更多信息可以在code.kx.com找到。
于 2017-09-14T15:11:10.743 回答
0
将 CSV 数据读入表后,您可以使用xcol重命名列。
于 2014-02-20T06:30:28.023 回答
0
如果你想一般地清理你的列名,下面的cleancols
函数可能很有用
rmbad:{`$string[x] inter\: .Q.an} //remove bad characters
//make sure first elem is a char
inichar:{`$@[s; where in[ ;.Q.n] first each s:string x;"c",]}
//rename duplicates
dupes:{@[x;g n;:;`$string[n],/:'string til each gc n:where 1<gc:count each g:group x]}
cleancols:dupes inichar rmbad cols@ //clean column names
cleancols[x] xcol x:flip (`$("bad*";"ba;d*"))!5 cut til 10
cleancols[x] xcol x:flip (`$("ok1";"1&* (ba;d*"))!5 cut til 10
于 2014-04-25T20:57:21.637 回答