Class: RubyBrain::TrainingDataManipulator

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_brain/training_data_manipulator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data_file, has_header) ⇒ TrainingDataManipulator

Returns a new instance of TrainingDataManipulator.



6
7
8
9
10
# File 'lib/ruby_brain/training_data_manipulator.rb', line 6

def initialize(data_file, has_header)
  puts data_file
  @columns = []
  @raw_data = parse_data(data_file, has_header)
end

Instance Attribute Details

#columnsObject

Returns the value of attribute columns.



5
6
7
# File 'lib/ruby_brain/training_data_manipulator.rb', line 5

def columns
  @columns
end

Instance Method Details

#ix(*col_index) ⇒ Object



24
25
26
27
28
# File 'lib/ruby_brain/training_data_manipulator.rb', line 24

def ix(*col_index)
  @raw_data.map do |a_set|
    a_set.values_at(*col_index).map(&:to_f)
  end
end

#num_data_setsObject



30
31
32
# File 'lib/ruby_brain/training_data_manipulator.rb', line 30

def num_data_sets
  @raw_data.length
end

#parse_data(data_file, has_header) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ruby_brain/training_data_manipulator.rb', line 12

def parse_data(data_file, has_header)
  array_of_data_set = []
  File.open(data_file) do |f|
    @columns = f.readline.chomp.split(',') if has_header
    f.each_line do |line|
      next if /\A\s+\z/ =~ line
      array_of_data_set << line.chomp.split(',')
    end
  end
  array_of_data_set
end