class Spout::Models::Graphables::NumericVsNumeric
Public Instance Methods
categories()
click to toggle source
# File lib/spout/models/graphables/numeric_vs_numeric.rb, line 11 def categories ["Quartile One", "Quartile Two", "Quartile Three", "Quartile Four"] end
series()
click to toggle source
# File lib/spout/models/graphables/numeric_vs_numeric.rb, line 19 def series @stratification_variable.domain.options.collect do |option| filtered_subjects = filter_and_sort_subjects_by_stratification_option(option) next if filtered_subjects.size == 0 data = [:quartile_one, :quartile_two, :quartile_three, :quartile_four].collect do |quartile| array = filtered_subjects.send(quartile).collect(&@variable.id.to_sym) array_statistics(array) end { name: option.display_name, data: data } end.compact end
units()
click to toggle source
# File lib/spout/models/graphables/numeric_vs_numeric.rb, line 15 def units @variable.units end
Private Instance Methods
array_statistics(array)
click to toggle source
# File lib/spout/models/graphables/numeric_vs_numeric.rb, line 45 def array_statistics(array) { y: (array.mean.round(1) rescue 0.0), stddev: ("%0.1f" % array.standard_deviation rescue ""), median: ("%0.1f" % array.median rescue ""), min: ("%0.1f" % array.min rescue ""), max: ("%0.1f" % array.max rescue ""), n: array.n } end
filter_and_sort_subjects_by_stratification_option(option)
click to toggle source
# File lib/spout/models/graphables/numeric_vs_numeric.rb, line 35 def filter_and_sort_subjects_by_stratification_option(option) begin @subjects.select do |s| s._visit == option.value and s.send(@variable.id) != nil and s.send(@chart_variable.id) != nil end.sort_by(&@chart_variable.id.to_sym) rescue [] end end