你好,我有一个类似的表格,我想选择有多个条目的 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, ., .];