簡體   English   中英

重塑 [cols;table]

[英]Reshape [cols;table]

如何從表中獲取列? 如果它們不存在,可以將它們作為空列。

嘗試reshape#

q)d:`a`b!1 2
q)enlist d
a b
---
1 2
q)`a`c#d
a| 1
c|
q)`a`c#enlist d
'c
  [0]  `a`c#enlist d
           ^

為什么reshape#運算符不適用於表? 它可以輕松地對每一行(即 dict)進行操作並合並結果。 所以我不得不寫:

q)`a`c#/:enlist d
a c
---
1

這是最短的路嗎?

您嘗試使用的任何鍵 ( # ) 不存在於字典中,都將被分配一個與字典中第一個值相同類型的空值。 類似的行為不適用於表。

q)`a`c#`a`b!(1 2;())
a| 1 2
c| `long$()
q)`b`c#`a`b!(();1 2)
b| 1 2
c| ()

就像您提到的那樣,使用 each-right ( /: ) 將作用於表 IE 每個字典的每一行。 我們可以對字典本身采取行動,而不是使用迭代器將表拆分為字典。 這將返回相同的輸出並且稍微快一點。

q)d:`a`b!1 2
q)enlist`a`c#d
a c
---
1
q)(`a`c#/:enlist d)~enlist`a`c#d
1b
q)\ts:1000000 enlist`a`c#d
395 864
q)\ts:1000000 `a`c#/:enlist d
796 880

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM