您好,我有一張與此類似的表,我想選擇有多個條目的 ID,併計算按 ID 分組的結果的標準差。例如,在本例中,我需要選擇 ID 12345 並計算前 3 個結果的標準差。
我知道我可以透過製表來做到這一點,但我的實際表非常大,超過 100 萬行,按 ID 製表併計算標準差結果非常耗時。我的實際表中的大多數 ID 只有一行。無論如何,我可以做這樣的事情,然後按 ID 計算剩餘結果組的標準差嗎?謝謝你的建議!
選擇其中(n行(分組列(:ID))> 1)
| ID | 結果 |
| 12345 | 0.3 |
| 12345 | 0.4 |
| 12345 | 0.2 |
| 23456 | 0.5 |
| 34567 | 0.2 |
選擇您的分組列(ID)

然後選擇您想要執行計算的列並選擇標準差(注意按 id 分組)



更多選擇
建立匯總表

獲得匯總表後,您可以單擊 stddev 列並按住滑鼠一段時間。這允許您“選擇”該列並將其拖放到原始表中

您也可以將更新與總計表一起使用

您可以使用 Tabulate 建立類似的表(注意 id 是名義上的)

然後從紅色三角形中,製作成資料表

然後,您可以使用更新(或聯接)將結果返回到您的表中。
還有許多腳本選項,這裡是使用Summarize() 的選項
Names Default To Here(1);
dt = Current Data Table();
Summarize(ids = by(:ID), stddevs = Std dev(:result));
show(ids, stddevs);
// ids = {"12345", "23456", "34567"}; // note that these are strings even if they were numbers originally
// stddevs = [0.1, ., .];