2014-02-20 3 views
2

Я импортирую файл csv в таблицу, но некоторые столбцы имеют пробелы в своих именах. Есть ли все-таки вокруг этого или мне нужно переименовать столбцы перед импортом?kdb Q имя столбца с пробелами

ответ

1

Чтобы удалить пробелы из имен столбцов в таблице т:

t:xcol[`$ssr[;" ";""]each string cols t;t] 
1

После того, как вы прочитали данные CSV в таблице, вы можете переименовать столбцы с помощью xcol.

0

Если вы хотите, чтобы очистить свои имена столбцов в общем, ниже cleancols функция может быть полезна

rmbad:{`$string[x] inter\: .Q.an} //remove bad characters 
//make sure first elem is a char 
inichar:{`[email protected][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 [email protected] //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 
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.

Смежные вопросы