如何将列表转换为 KDB 中的矩阵?
How do I convert a list into a matrix in KDB?
我有一个表格列表:
1 2 3 4
我想把它转换成方阵:
1 2
3 4
我认为是:
(1 2;3 4)
对于 KDB 中 n
大小的矩阵,执行此操作的规范方法是什么?
您可以使用take
q)n: 2
q)(n; n) # 1 2 3 4
1 2
3 4
或对于 m x n 矩阵:
q)m: 2
q)n: 3
q)(m; n) # 1 2 3 4 5 6
1 2 3
4 5 6
你可以这样做:
n cut list
例如
q)3 cut til prd 3 3
0 1 2
3 4 5
6 7 8
编辑:
要将任何列表插入最近的 n*n
矩阵并用 NA 填充后续位置,您可以这样做:
q)f:{a:(ceiling sqrt b:count x); a cut x,((a*a) - b)#0N}
q)/e.g.
q)f til 10
0 1 2 3
4 5 6 7
8 9
q)
我有一个表格列表:
1 2 3 4
我想把它转换成方阵:
1 2
3 4
我认为是:
(1 2;3 4)
对于 KDB 中 n
大小的矩阵,执行此操作的规范方法是什么?
您可以使用take
q)n: 2
q)(n; n) # 1 2 3 4
1 2
3 4
或对于 m x n 矩阵:
q)m: 2
q)n: 3
q)(m; n) # 1 2 3 4 5 6
1 2 3
4 5 6
你可以这样做:
n cut list
例如
q)3 cut til prd 3 3
0 1 2
3 4 5
6 7 8
编辑:
要将任何列表插入最近的 n*n
矩阵并用 NA 填充后续位置,您可以这样做:
q)f:{a:(ceiling sqrt b:count x); a cut x,((a*a) - b)#0N}
q)/e.g.
q)f til 10
0 1 2 3
4 5 6 7
8 9
q)