Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“如何使用类型”;";及;";在kdb中_Kdb - Fatal编程技术网

“如何使用类型”;";及;";在kdb中

“如何使用类型”;";及;";在kdb中,kdb,Kdb,当我使用metatablename检查类型时。得到以下结果: c t f a `description "C" 现在我想知道类型“c”和“c”之间的区别。以及如何将类型“c”转换为“c” 从下面的解释中,我可以得到当表中有“c”类型时,我可以将其转换为“c”类型。我的新问题如下: 表1: ([ID:`1`2`3]Name:`A`B`C;Client:`P`Q`S;Species:`setosa`setosa`setosa ;Le

当我使用
metatablename
检查类型时。得到以下结果:

c                t        f      a
`description     "C"
现在我想知道类型
“c”
“c”
之间的区别。以及如何将类型
“c”
转换为
“c”

从下面的解释中,我可以得到当表中有“c”类型时,我可以将其转换为“c”类型。我的新问题如下: 表1:

([ID:`1`2`3]Name:`A`B`C;Client:`P`Q`S;Species:`setosa`setosa`setosa   ;Length:2 34 6)
显示如下:

ID Name  Client    Species  Length
 1    A     B        setosa    2
 2    B     Q        setosa    34
 3    C     S        setosa    6
我想为表1编写一个简单的api:

.get.table1:{[Params]
  if[Params~();Params:()!()];
   select ID:ID,NAME:Name,CLIENT:Client,SPECIES:Species,LENGTH:Length,DESCRIP:count[i]#enlist "" from table1
    }
结果:
.get.table1[]

ID NAME  CLIENT    SPECIES  LENGTH  DESCRIP
 1    A     B        setosa    2       ""
 2    B     Q        setosa    34      ""
 3    C     S        setosa    6       ""
元表1:

c             t   f   a
ID            s
NAME          s
CLIENT        s
LENGTH        j
DESCRIP       C
现在,我想更改api的编写风格,以获得与上述api相同的结果。我应该怎么做?(如何描述描述行)

类型“c”表示列中的每个元素都是原子的,而类型“c”表示列中的每个元素都是该类型的列表。要从“c”转换为“c”,您可以登记每个字符,使其成为一个列表

q) meta ([] c:"123")
c| t f a
-| -----
c| c

q) meta ([] c:enlist each "123")
c| t f a
-| -----
c| C
查询字符串列将效率低下。如果列中有一小组经常重复的不同值,则将列强制转换为符号列将更有效

类型“c”表示列中的每个元素都是原子的,而类型“c”表示列中的每个元素都是该类型的列表。要从“c”转换为“c”,您可以登记每个字符,使其成为一个列表

q) meta ([] c:"123")
c| t f a
-| -----
c| c

q) meta ([] c:enlist each "123")
c| t f a
-| -----
c| C
查询字符串列将效率低下。如果列中有一小组经常重复的不同值,则将列强制转换为符号列将更有效

类型“c”是单个字符(atom)。类型“C”是字符列表。以下是一些可能有助于说明问题的示例:

q)tbl:([] col:"abc")
q)meta tbl
c  | t f a
---| -----
col| c    
q)tbl
col
---
a  
b  
c  
q)update col:enlist each col from `tbl / "cast"
`tbl
q)meta tbl
c  | t f a
---| -----
col| C    
q)tbl
col 
----
,"a"
,"b"
,"c"
所以“演员”只是一个应征者。如果列中混合了原子和列表,请小心,因为“每个都登记”并不能满足您的需要。你必须有条件地登记那些仅仅是原子的值,使用类似这样的东西

q)enl:{$[0h>type x;enlist x;x]}
q)update col:enl each col from `tbl
类型“c”是单个字符(原子)。类型“C”是字符列表。以下是一些可能有助于说明问题的示例:

q)tbl:([] col:"abc")
q)meta tbl
c  | t f a
---| -----
col| c    
q)tbl
col
---
a  
b  
c  
q)update col:enlist each col from `tbl / "cast"
`tbl
q)meta tbl
c  | t f a
---| -----
col| C    
q)tbl
col 
----
,"a"
,"b"
,"c"
所以“演员”只是一个应征者。如果列中混合了原子和列表,请小心,因为“每个都登记”并不能满足您的需要。你必须有条件地登记那些仅仅是原子的值,使用类似这样的东西

q)enl:{$[0h>type x;enlist x;x]}
q)update col:enl each col from `tbl

还有一种方法:

q)t:([] x:"abc")
q)meta update ("",/:x) from t
c| t f a
-| -----
x| C
附加空字符串的好处在于,如果元素已经是列表,那么它不会产生任何影响

q)t:([] x:"",/:"abc")     / each element is already a list 
meta[t]~meta update ("",/:x) from t
但是,应用
登记
会将数据类型更改为异构列表(
类型0h
):


还有一种方法:

q)t:([] x:"abc")
q)meta update ("",/:x) from t
c| t f a
-| -----
x| C
附加空字符串的好处在于,如果元素已经是列表,那么它不会产生任何影响

q)t:([] x:"",/:"abc")     / each element is already a list 
meta[t]~meta update ("",/:x) from t
但是,应用
登记
会将数据类型更改为异构列表(
类型0h
):