我有一个表,其中有多个列的选项卡。我对 C 类型的列文本感兴趣。现在我们想使用文本列并根据 delimeter 进行分割;并创建一个新列
所以这里的列名是rank,它的值是1等等...我们在kdb+中如何做到这一点?
我想出了下面的方法,但我不想使用它,因为它被硬编码到第 6 项等等......如果订单发生变化,或者如果国家/地区丢失,那么它会中断怎么办
res:update `$(raze(" *";"=")0:string country) from update country:(`$";" vs' text)[;6] from res;
Run Code Online (Sandbox Code Playgroud)
请在提问时提供示例代码来创建您的数据,图片对我们没有帮助。
q)t:([]text:("aa=1;bb=XYZ;cc=$1.23";"bb=TUV;dd=3.4%";"aa=foo;cc=10"))
q)t,'(uj/)exec{enlist(!/)"S=;"0:x}'[text]from t
text aa bb cc dd
-------------------------------------------------
"aa=1;bb=XYZ;cc=$1.23" ,"1" "XYZ" "$1.23" ""
"bb=TUV;dd=3.4%" "" "TUV" "" "3.4%"
"aa=foo;cc=10" "foo" "" "10" ""
Run Code Online (Sandbox Code Playgroud)
这是文档的相关部分:https://code.kx.com/q/ref/file-text/#key-value-pairs