Class: FlatKit::StatType::NominalStats
Overview
Status object to keep track of the count and frequency of values
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
for, nominal_types, numerical_types, ordinal_types, #to_hash, #to_json
Constructor Details
#initialize(collecting_frequencies: false) ⇒ NominalStats
Returns a new instance of NominalStats.
18
19
20
21
22
23
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 18
def initialize(collecting_frequencies: false)
@mutex = Mutex.new
@count = 0
@collecting_frequencies = collecting_frequencies
@frequencies = Hash.new(0)
end
|
Instance Attribute Details
#count ⇒ Object
Returns the value of attribute count.
8
9
10
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 8
def count
@count
end
|
Class Method Details
.all_stats ⇒ Object
14
15
16
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 14
def self.all_stats
@all_stats ||= %w[ count unique_count unique_values mode ]
end
|
.default_stats ⇒ Object
10
11
12
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 10
def self.default_stats
@default_stats ||= %w[ count ]
end
|
Instance Method Details
#collected_stats ⇒ Object
25
26
27
28
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 25
def collected_stats
return self.class.default_stats unless @collecting_frequencies
return self.class.all_stats
end
|
#frequencies ⇒ Object
45
46
47
48
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 45
def frequencies
return nil unless @collecting_frequencies
@frequencies
end
|
#mode ⇒ Object
30
31
32
33
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 30
def mode
return nil unless @collecting_frequencies
@frequencies.max_by{ |item, item_count| item_count }.first
end
|
#unique_count ⇒ Object
35
36
37
38
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 35
def unique_count
return nil unless @collecting_frequencies
@frequencies.size
end
|
#unique_values ⇒ Object
40
41
42
43
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 40
def unique_values
return nil unless @collecting_frequencies
@frequencies.keys
end
|
#update(value) ⇒ Object
50
51
52
53
54
55
|
# File 'lib/flat_kit/stat_type/nominal_stats.rb', line 50
def update(value)
@mutex.synchronize do
@count += 1
@frequencies[value] += 1 if @collecting_frequencies
end
end
|