diff --git a/src/DataFrame-Tests/DataSeriesTest.class.st b/src/DataFrame-Tests/DataSeriesTest.class.st index 9847c149..08eea389 100644 --- a/src/DataFrame-Tests/DataSeriesTest.class.st +++ b/src/DataFrame-Tests/DataSeriesTest.class.st @@ -1058,6 +1058,32 @@ DataSeriesTest >> testCopyChangeDoesNotAffectOriginal [ self assert: original equals: expectedOriginalAfterChange ] +{ #category : #'tests - statistics' } +DataSeriesTest >> testCountNils [ + + | seriesWithNils | + keyArray := #( a b c d e f g h i j k ). + + seriesWithNils := DataSeries + withKeys: keyArray + values: #( 3 7 6 20 nil 9 nil 10 15 13 nil ) + name: 'ExampleSeries'. + self assert: seriesWithNils countNils equals: 3 +] + +{ #category : #'tests - statistics' } +DataSeriesTest >> testCountNonNils [ + + | seriesWithNils | + keyArray := #( a b c d e f g h i j k ). + + seriesWithNils := DataSeries + withKeys: keyArray + values: #( 3 7 6 20 nil 9 nil 10 15 13 nil ) + name: 'ExampleSeries'. + self assert: seriesWithNils countNonNils equals: 8 +] + { #category : #'tests - creation' } DataSeriesTest >> testCreateDataSeriesAsDataSeries [ diff --git a/src/DataFrame/DataSeries.class.st b/src/DataFrame/DataSeries.class.st index 877c255a..3d03c778 100644 --- a/src/DataFrame/DataSeries.class.st +++ b/src/DataFrame/DataSeries.class.st @@ -236,6 +236,20 @@ DataSeries >> correlationWith: otherSeries using: aCorrelationCoefficient [ ^ aCorrelationCoefficient between: self and: otherSeries ] +{ #category : #statistics } +DataSeries >> countNils [ + "Returns the number of nil values in the data series" + + ^ self count: [ :each | each isNil ] +] + +{ #category : #statistics } +DataSeries >> countNonNils [ + "Returns the number of non-nil values in the data series" + + ^ self count: [ :each | each isNotNil ] +] + { #category : #statistics } DataSeries >> crossTabulateWith: aSeries [ "A DataFrame is returned which is useful in quantitatively analyzing the relationship of values in one data series with the values in another data series"