【问题标题】:kdb - how generate HEX colour code as string or symbolkdb - 如何将 HEX 颜色代码生成为字符串或符号
【发布时间】:2021-02-11 10:41:17
【问题描述】:

我想在内存表上创建一个列,该列根据人名(另一列)生成颜色 HEX 代码。一个快速的谷歌并没有给出太多,所以想知道是否可以在这里给出任何指示。 例如

update colour: <some code and use username col as input> from table

【问题讨论】:

    标签: kdb


    【解决方案1】:

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

    update colour:{<some code>}[username] from table
    update colour:someFunction[username] from table
    

    如果没有向量化,则需要像 each ' 这样的迭代器

    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
    

    【讨论】:

    • 很抱歉,但我的问题不是关于如何更新列(矢量化或使用每个列)。这是关于是否有一种聪明的方法来生成十六进制代码
    • 在这方面你的问题很模糊。到目前为止,您为生成 HEX 代码做了哪些尝试?应该按照什么规则进行转换?你只需要字符串的前 3 个字符就可以了?我在答案中添加了一个十六进制代码生成器函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 2021-01-07
    • 2020-05-25
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2011-04-13
    相关资源
    最近更新 更多