我正在将csv文件导入到表中,但是某些列的名称中包含空格。 反正这个还是我需要在导入之前重命名列?
答案 0 :(得分:1)
将CSV数据读入表格后,您可以使用xcol重命名列。
答案 1 :(得分:1)
从表t中的列名中删除空格:
t:xcol[`$ssr[;" ";""]each string cols t;t]
答案 2 :(得分: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
答案 3 :(得分:0)
.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找到更多信息。