4
我有一個集合作爲這樣:您如何在Groovy中使用GroupBy和Sum?
[[patient1,value1], [patient2,value2]]
對於實施例。
x = [[1, 20.28], [1, 11.11], [2, 4.60], [2, 3.68]]
我用countBy
讓每名病人的計數這樣:
def counts = x.countBy{patient, value -> patient}
我試圖讓每名患者的款項,沒有運氣:
def sums = x.groupBy({patient, value -> patient }).collectEntries{p, v -> p:v.sum()}
有我錯過了什麼?
注:這裏的總體目標是讓病人的,我用平均值:
def avgs = sums.collect{patient, value -> (value/counts[patient]) }
謝謝!
我現在如何獲得平均值的平均值?我試過avgs.sum {it [1]}/avgs.size(),但它導致沒有方法的簽名:java.util.LinkedHashMap.sum()。 –
@ZacSol:map沒有sum方法,它只對列表和集合有意義,所以使用map.entrySet()。補充說這個答案。 –