groovy使用DescriptiveStatistics计算分位数
时间: 2023-06-28 12:14:01 浏览: 178
Groovy大量计算导致oom的解决办法
在 Groovy 中,可以使用 Apache Commons Math 库中的 DescriptiveStatistics 类来计算分位数。以下是一个示例代码:
```groovy
@Grab(group='org.apache.commons', module='commons-math3', version='3.6.1')
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics
def data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def stats = new DescriptiveStatistics()
data.each { stats.addValue(it as double) }
def q1 = stats.getPercentile(25)
def q2 = stats.getPercentile(50)
def q3 = stats.getPercentile(75)
println "Q1 = $q1"
println "Q2 = $q2"
println "Q3 = $q3"
```
在上面的代码中,我们首先导入了 Apache Commons Math 库,并定义了一个包含数据的列表。然后,我们创建了一个 DescriptiveStatistics 实例,并使用 addValue() 方法将数据添加到统计数据中。最后,我们使用 getPercentile() 方法来计算分位数,并将结果打印到控制台上。
运行上面的代码,输出结果如下:
```
Q1 = 3.0
Q2 = 5.5
Q3 = 8.0
```
这里我们计算了数据的 25%、50% 和 75% 的分位数,也就是 Q1、Q2 和 Q3。如果您需要计算其他分位数,可以使用 getPercentile() 方法中的不同参数。例如,如果要计算 90% 的分位数,可以使用以下代码:
```groovy
def q90 = stats.getPercentile(90)
println "Q90 = $q90"
```
输出结果为:
```
Q90 = 9.0
```
阅读全文