如何在 kdb+ 中将符号转换为字符串?

How to convert a symbol to a string in kdb+?

例如,如果我有一个符号列表,即 (`A.ABC;`B.DEF;`C.GHI)(`A;`B;`C),我如何将列表中的每个项目转换为字符串?

string 将转换它们。这是一个atomic函数

q)string (`A.ABC;`B.DEF;`C.GHI)
"A.ABC"
"B.DEF"
"C.GHI"

您可以使用关键字字符串来完成此记录here

q)lst:(`A;`B;`C)
// convert to list of strings
q)string lst
,"A"
,"B"
,"C"

正如其他人所提到的,string 就是您所追求的。在您的示例中,如果您有兴趣分隔由 . 分隔的前缀和后缀,您可以执行

q)a:(`A.ABC;`B.DEF;`C.GHI)
q)` vs' a
A ABC
B DEF
C GHI

如果你想将它们转换为字符串,你可以在上面再次使用 string

q)string each (`A.ABC;`B.DEF;`C.GHI) 
"A.ABC"
"B.DEF"
"C.GHI"

谢谢大家,有用的答案!当我试图自己并行解决这个问题时,我发现 ($) 似乎也有效。

q)example:(`A;`B;`C)
q)updatedExample:($)example;
q)updatedExample
enlist "A"
enlist "B"
enlist "C"

使用 String() 函数。

q)d
employeeID firstName             lastName
-----------------------------------------------------
1001       Employee 1 First Name Employee 1 Last Name
1002       Employee 2 First Name Employee 2 Last Name
q)update firstName:string(firstName) from `d
`d
q)d
employeeID firstName               lastName
-------------------------------------------------------
1001       "Employee 1 First Name" Employee 1 Last Name
1002       "Employee 2 First Name" Employee 2 Last Name