2

我正在将 csv 文件导入到表中,但某些列的名称中有空格。无论如何,还是我需要在导入之前重命名列?

4

4 回答 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 回答