Sha256: f337f316acfe594f1bd9ac90c75a607185dcfaa3b420d6a986625a05e3cead36

Contents?: true

Size: 673 Bytes

Versions: 1

Compression:

Stored size: 673 Bytes

Contents

require "flex_station_data/presenters/sample_csv"
require "flex_station_data/linear_regression"

module FlexStationData
  module Presenters
    class SampleLinearRegressionCsv < SampleCsv
      include Concerns::Presenter

      def regression_factory
        LinearRegression.method(:new).curry(2)[times]
      end

      def regressions
        [ *sample.readings, sample.mean ].map(&:values).map(&regression_factory)
      end

      def regressions_csv
        [
          [ "slope", *regressions.map(&:slope) ],
          [ "R²",    *regressions.map(&:r_squared) ]
        ]
      end

      def values_csv
        super + regressions_csv
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
flex-station-data-0.2.0 lib/flex_station_data/presenters/sample_linear_regression_csv.rb