@@ -778,13 +778,22 @@ DataSeries >> removeNils [
778778DataSeries >> replaceNilsWith: anObject [
779779 " Replaces nils inplace with anObject"
780780
781- self withIndexDo: [ :ele :index | ele ifNil: [ self atIndex: index put: anObject ] ]
781+ " (#(a 'nil' nil d nil) asDataSeries replaceNilsWith: #b) >>> (#(a 'nil' b d b) asDataSeries)"
782+
783+ " (#(1 0 nil 3 nil) asDataSeries replaceNilsWith: 7) >>> (#(1 0 7 3 7) asDataSeries)"
784+
785+ self withIndexDo: [ :ele :index |
786+ ele ifNil: [ self atIndex: index put: anObject ] ]
782787]
783788
784789{ #category : #replacing }
785790DataSeries >> replaceNilsWithAverage [
786791 " Replaces nils inplace with average"
787792
793+ " (#(1 2 nil 3 nil) asDataSeries replaceNilsWithAverage) >>> (#(1 2 2 3 2) asDataSeries)"
794+
795+ " (#(3 6 2 9 nil) asDataSeries replaceNilsWithAverage) >>> (#(3 6 2 9 5) asDataSeries)"
796+
788797 | mean |
789798 mean := (self select: [ :ele | ele isNotNil ]) average.
790799 self replaceNilsWith: mean
@@ -794,6 +803,10 @@ DataSeries >> replaceNilsWithAverage [
794803DataSeries >> replaceNilsWithMedian [
795804 " Replaces nils inplace with median"
796805
806+ " (#(1 2 nil 3) asDataSeries replaceNilsWithMedian) >>> (#(1 2 2 3) asDataSeries)"
807+
808+ " (#(3 7 nil 9 nil) asDataSeries replaceNilsWithMedian) >>> (#(3 7 7 9 7) asDataSeries)"
809+
797810 | median |
798811 median := (self select: [ :ele | ele isNotNil ]) median.
799812 self replaceNilsWith: median
@@ -803,16 +816,23 @@ DataSeries >> replaceNilsWithMedian [
803816DataSeries >> replaceNilsWithMode [
804817 " Replaces nils inplace with mode"
805818
819+ " (#(1 2 1 3 nil) asDataSeries replaceNilsWithMode) >>> (#(1 2 1 3 1) asDataSeries)"
820+
821+ " (#(a a a b nil) asDataSeries replaceNilsWithMode) >>> (#(a a a b a) asDataSeries)"
822+
806823 | mode |
807824 mode := (self select: [ :ele | ele isNotNil ]) mode.
808825 self replaceNilsWith: mode
809826]
810827
811828{ #category : #replacing }
812829DataSeries >> replaceNilsWithPreviousValue [
813-
814830 " Replaces nils inplace with previous non-nil value"
815831
832+ " (#(nil 2 nil 3 nil) asDataSeries replaceNilsWithPreviousValue) >>> (#(nil 2 2 3 3) asDataSeries)"
833+
834+ " (#(a nil b c nil) asDataSeries replaceNilsWithPreviousValue) >>> (#(a a b c c) asDataSeries)"
835+
816836 | value |
817837 self withIndexDo: [ :ele :index |
818838 index > 1 ifTrue: [ ele ifNil: [ self atIndex: index put: value ] ].
@@ -823,6 +843,10 @@ DataSeries >> replaceNilsWithPreviousValue [
823843DataSeries >> replaceNilsWithZeros [
824844 " Replaces nils inplace with zero"
825845
846+ " (#(1 2 nil 3 nil) asDataSeries replaceNilsWithZeros) >>> (#(1 2 0 3 0) asDataSeries)"
847+
848+ " (#(a b c d nil) asDataSeries replaceNilsWithZeros) >>> (#(a b c d 0) asDataSeries)"
849+
826850 self replaceNilsWith: 0
827851]
828852
0 commit comments