kdb-如何生成十六进制颜色代码作为字符串或符号

kdb-如何生成十六进制颜色代码作为字符串或符号,kdb,Kdb,我想在内存表中创建一列,该列根据人名(另一列)生成颜色十六进制代码。一个快速的谷歌并没有给出太多,所以不知道是否有任何指针可以在这里给出。 e、 g 更新颜色:来自表格 在kdb+中,您可以通过update语句在列上运行函数,但根据函数是否为矢量化,会有细微差别。如果矢量化: update colour:{<some code>}[username] from table update colour:someFunction[username] from table 此函数将从字符

我想在内存表中创建一列,该列根据人名(另一列)生成颜色十六进制代码。一个快速的谷歌并没有给出太多,所以不知道是否有任何指针可以在这里给出。 e、 g

更新颜色:来自表格

在kdb+中,您可以通过
update
语句在列上运行函数,但根据函数是否为矢量化,会有细微差别。如果矢量化:

update colour:{<some code>}[username] from table
update colour:someFunction[username] from table
此函数将从字符串的前3个字符生成十六进制代码

q)hex:{a:i-16*j:(i:`int$3#x)div 16;"0123456789ABCDEF"raze(j-16*j div 16),'a}
q)hex"Hello"
"48656C"
q)update colour:hex'[username] from table

很抱歉,我的问题不是关于如何更新列(矢量化或使用每个列)。这是关于是否有一个聪明的方法来生成十六进制代码,在这方面你的问题是相当模糊的。到目前为止,您在生成十六进制代码方面做了哪些尝试?根据什么规则进行转换?是否只需要字符串的前3个字符就可以执行此操作?我在答案中添加了一个十六进制代码生成器函数。
update colour:{<some code>}'[username] from table
update colour:someFunction'[username] from table
q)hex:{a:i-16*j:(i:`int$3#x)div 16;"0123456789ABCDEF"raze(j-16*j div 16),'a}
q)hex"Hello"
"48656C"
q)update colour:hex'[username] from table