我希望澄清我正在寻找一种方法来计算标准偏差使用流(我有一个工作方法,目前计算和返回sd,但不使用流)。
我正在使用的数据集与link中看到的非常匹配。如此链接所示,我可以对我的数据进行分组&获得平均值,但无法找出如何获得sd。
代码
outPut.stream()
.collect(Collectors.groupingBy(e -> e.getCar(),
Collectors.averagingDouble(e -> (e.getHigh() - e.getLow()))))
.forEach((car,avgHLDifference) -> System.out.println(car+ "\t" + avgHLDifference));
我还检查了doublesummarystatistics上的链接,但它似乎对sd没有帮助。
2条答案
按热度按时间e4eetjau1#
您可以为此任务使用自定义收集器来计算平方和。内置的
DoubleSummaryStatistics
收集器不跟踪它。Maven组对此进行了讨论,但最终没有实施。计算平方和时的困难在于对中间结果求平方时的潜在溢出。然后,您可以将这个类与
这将把输入列表收集到一个Map中,其中的值对应于
high - low
同一把钥匙。y53ybaqx2#
您可以使用此自定义收集器:
然后只需在流中调用此收集器: