class FlatKit::StatType::NominalStats
Status object to keep track of the count and frequency of values
Attributes
count[R]
Public Class Methods
all_stats()
click to toggle source
# 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()
click to toggle source
# File lib/flat_kit/stat_type/nominal_stats.rb, line 10 def self.default_stats @default_stats ||= %w[ count ] end
new(collecting_frequencies: false)
click to toggle source
# 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
Public Instance Methods
collected_stats()
click to toggle source
# 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()
click to toggle source
# File lib/flat_kit/stat_type/nominal_stats.rb, line 45 def frequencies return nil unless @collecting_frequencies @frequencies end
mode()
click to toggle source
# 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()
click to toggle source
# File lib/flat_kit/stat_type/nominal_stats.rb, line 35 def unique_count return nil unless @collecting_frequencies @frequencies.size end
unique_values()
click to toggle source
# File lib/flat_kit/stat_type/nominal_stats.rb, line 40 def unique_values return nil unless @collecting_frequencies @frequencies.keys end
update(value)
click to toggle source
# 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