3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/eps/utils.rb', line 3
def self.column_type(c, k)
if !c
raise ArgumentError, "Missing column: #{k}"
elsif c.all? { |v| v.nil? }
nil
elsif c.any? { |v| v.nil? }
raise ArgumentError, "Missing values in column #{k}"
elsif c.all? { |v| v.is_a?(Numeric) }
"numeric"
elsif c.all? { |v| v.is_a?(String) }
"categorical"
elsif c.all? { |v| v == true || v == false }
"categorical" else
raise ArgumentError, "Column values must be all numeric, all string, or all boolean: #{k}"
end
end
|