Method: FeatureSet::DataSet#to_rarff

Defined in:
lib/feature_set/data_set.rb

#to_rarffObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/feature_set/data_set.rb', line 38

def to_rarff
  relation = Rarff::Relation.new(name || 'Data')
  keys = features.first.keys
  instances = features.map do |row|
    keys.map do |key|
      value = row[key]
      if value.is_a?(String)
        value.gsub(/\\/, "\\\\\\\\").gsub(/"/, "\\\\\"").gsub(/'/, '\\\\\'')
      elsif value.is_a?(Symbol)
        value.to_s
      else
        value
      end
    end
  end
  relation.instances = instances
  keys.each_with_index do |key, index|
    relation.attributes[index].name = key.to_s
  end
  relation
end