MCPcopy Create free account
hub / github.com/codechenx/FastTableViewer / summary

Method summary

stats.go:46–96  ·  view source on GitHub ↗
(a []string)

Source from the content-addressed store, hash-verified

44}
45
46func (s *ContinuousStats) summary(a []string) {
47 originalCount := len(a)
48 data := stats.LoadRawData(a)
49 s.data = data
50 s.count = len(data)
51 s.missing = originalCount - s.count
52
53 if s.count == 0 {
54 s.summaryData = [][]string{{"Total values", I2S(originalCount)}, {"Missing/Invalid", I2S(s.missing)}, {"No numeric data", ""}}
55 return
56 }
57
58 s.min, _ = stats.Min(data)
59 s.max, _ = stats.Max(data)
60 s.mean, _ = stats.Mean(data)
61 s.median, _ = stats.Median(data)
62 s.sd, _ = stats.StandardDeviation(data)
63 s.variance, _ = stats.Variance(data)
64 s.sum, _ = stats.Sum(data)
65
66 q, _ := stats.Quartile(data)
67 s.q1, s.q2, s.q3 = q.Q1, q.Q2, q.Q3
68 s.iqr = s.q3 - s.q1
69
70 // Calculate mode
71 s.mode, s.modeCount = calculateMode(data)
72
73 summaryArray := [][]string{
74 {"Total values", I2S(originalCount)},
75 {"Valid numbers", I2S(s.count)},
76 {"Missing/Invalid", I2S(s.missing)},
77 {"", ""},
78 {"Min", F2S(s.min)},
79 {"Max", F2S(s.max)},
80 {"Range", F2S(s.max - s.min)},
81 {"Sum", F2S(s.sum)},
82 {"", ""},
83 {"Mean", F2S(s.mean)},
84 {"Median", F2S(s.median)},
85 {"Mode", F2S(s.mode) + " (" + I2S(s.modeCount) + "x)"},
86 {"", ""},
87 {"Std Dev", F2S(s.sd)},
88 {"Variance", F2S(s.variance)},
89 {"", ""},
90 {"Q1 (25%)", F2S(s.q1)},
91 {"Q2 (50%)", F2S(s.q2)},
92 {"Q3 (75%)", F2S(s.q3)},
93 {"IQR", F2S(s.iqr)},
94 }
95 s.summaryData = summaryArray
96}
97
98func calculateMode(data []float64) (float64, int) {
99 if len(data) == 0 {

Calls 3

I2SFunction · 0.85
calculateModeFunction · 0.85
F2SFunction · 0.85