Skip to content

Commit 65ed428

Browse files
committed
Reject nils for quartils computations
1 parent 7014f94 commit 65ed428

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

src/DataFrame-Tests/DataSeriesTest.class.st

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2015,6 +2015,16 @@ DataSeriesTest >> testStatsQuartile [
20152015
self assert: (series quartile: 4) equals: 20.
20162016
]
20172017

2018+
{ #category : #statistics }
2019+
DataSeriesTest >> testStatsQuartileWithNil [
2020+
series atIndex: 2 put: nil.
2021+
self assert: (series quartile: 0) equals: 3.
2022+
self assert: (series quartile: 1) equals: 8.
2023+
self assert: (series quartile: 2) equals: 9.
2024+
self assert: (series quartile: 3) equals: 15.
2025+
self assert: (series quartile: 4) equals: 20.
2026+
]
2027+
20182028
{ #category : #statistics }
20192029
DataSeriesTest >> testStatsRange [
20202030

src/DataFrame/DataSeries.class.st

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ DataSeries >> initialize: aCapacity [
401401

402402
{ #category : #statistics }
403403
DataSeries >> interquartileRange [
404-
^ self thirdQuartile - self firstQuartile
404+
^ self thirdQuartile - self firstQuartile
405405
]
406406

407407
{ #category : #'categorical-numerical' }
@@ -479,14 +479,14 @@ DataSeries >> ninth [
479479

480480
{ #category : #statistics }
481481
DataSeries >> quantile: aNumber [
482+
482483
| sortedSeries index |
483-
sortedSeries := self sorted.
484-
485-
aNumber = 0
486-
ifTrue: [ ^ sortedSeries first ].
487-
484+
sortedSeries := self withoutNils sorted.
485+
486+
aNumber = 0 ifTrue: [ ^ sortedSeries first ].
487+
488488
index := (sortedSeries size * (aNumber / 100)) ceiling.
489-
^ sortedSeries atIndex: index.
489+
^ sortedSeries atIndex: index
490490
]
491491

492492
{ #category : #statistics }
@@ -856,6 +856,12 @@ DataSeries >> withSeries: otherDataSeries collect: twoArgBlock [
856856
^ result
857857
]
858858

859+
{ #category : #private }
860+
DataSeries >> withoutNils [
861+
862+
^ self reject: #isNil
863+
]
864+
859865
{ #category : #statistics }
860866
DataSeries >> zerothQuartile [
861867
^ self quartile: 0

0 commit comments

Comments
 (0)