File tree Expand file tree Collapse file tree 4 files changed +38
-2
lines changed
Expand file tree Collapse file tree 4 files changed +38
-2
lines changed Original file line number Diff line number Diff line change @@ -11,8 +11,8 @@ DataPearsonCorrelationMethod class >> between: x and: y [
1111 | xDeviation yDeviation |
1212 x size = y size ifFalse: [ SizeMismatch signal : ' Correlation can not be calculated for two series of different size' ].
1313
14- xDeviation := (x values replaceAll: nil with: 0 ) - x average .
15- yDeviation := (y values replaceAll: nil with: 0 ) - y average .
14+ xDeviation := (x values replaceAll: nil with: 0 ) - (x sum / x size) .
15+ yDeviation := (y values replaceAll: nil with: 0 ) - (y sum / y size) .
1616
1717 ^ (xDeviation * yDeviation) sum / ((xDeviation ** 2 ) sum * (yDeviation ** 2 ) sum) sqrt
1818]
Original file line number Diff line number Diff line change @@ -32,6 +32,23 @@ DataFrameStatsTest >> testAverage [
3232 self assert: actual closeTo: expected
3333]
3434
35+ { #category : #tests }
36+ DataFrameStatsTest >> testAverageWithNils [
37+
38+ | expected actual |
39+ df := DataFrame withRows: #( #( 1 1 ) #( 2 nil ) #( nil 3 ) #( 4 4 ) ).
40+ df columnNames: #( dogs cats ) .
41+
42+ expected := {
43+ (7 / 3 ).
44+ (8 / 3 ) } asDataSeries.
45+ expected name: #average .
46+ expected keys: df columnNames.
47+
48+ actual := df average.
49+ self assert: actual closeTo: expected
50+ ]
51+
3552{ #category : #tests }
3653DataFrameStatsTest >> testCorrelationMatrix [
3754
Original file line number Diff line number Diff line change @@ -531,6 +531,18 @@ DataSeriesTest >> testAtTransformIfAbsent [
531531 self assert: exceptionBlockEvaluated
532532]
533533
534+ { #category : #' tests - arithmetic' }
535+ DataSeriesTest >> testAverage [
536+
537+ self assert: #( 1 2 3 4 ) asDataSeries average equals: 5 / 2
538+ ]
539+
540+ { #category : #' tests - arithmetic' }
541+ DataSeriesTest >> testAverageWithNils [
542+
543+ self assert: #( 2 nil 4 ) asDataSeries average equals: 3
544+ ]
545+
534546{ #category : #' tests - comparing' }
535547DataSeriesTest >> testBooleanGreaterThanEqualFromScalar [
536548
Original file line number Diff line number Diff line change @@ -160,6 +160,13 @@ DataSeries >> atIndex: aNumber transform: aBlock [
160160 self at: key transform: aBlock
161161]
162162
163+ { #category : #information }
164+ DataSeries >> average [
165+ " We do not count the nils"
166+
167+ ^ (self values reject: #isNil ) average
168+ ]
169+
163170{ #category : #' data-types' }
164171DataSeries >> calculateDataType [
165172
You can’t perform that action at this time.
0 commit comments