class Charty::TableAdapters::DaruAdapter
Attributes
data[R]
Public Class Methods
new(data, columns: nil, index: nil)
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 15 def initialize(data, columns: nil, index: nil) @data = check_type(Daru::DataFrame, data, :data) self.columns = columns unless columns.nil? self.index = index unless index.nil? end
supported?(data)
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 11 def self.supported?(data) defined?(Daru::DataFrame) && data.is_a?(Daru::DataFrame) end
Public Instance Methods
[](row, column)
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 53 def [](row, column) if row @data[column][row] else column_data = if @data.has_vector?(column) @data[column] else case column when String @data[column.to_sym] else @data[column.to_s] end end Vector.new(column_data) end end
[]=(key, values)
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 71 def []=(key, values) case key when Symbol sym_key = key str_key = key.to_s else str_key = key.to_str sym_key = str_key.to_sym end case when @data.has_vector?(sym_key) key = sym_key when @data.has_vector?(str_key) key = str_key end case values when Charty::Vector case values.adapter when Charty::VectorAdapters::DaruVectorAdapter @data[key] = values.adapter.data else @data[key] = values.to_a end else orig_values = values values = Array.try_convert(values) if values.nil? raise ArgumentError, "`values` must be convertible to Array" end @data[key] = values end return values end
column_names()
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 40 def column_names @data.vectors.to_a end
columns()
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 32 def columns DaruIndex.new(data.vectors) end
columns=(values)
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 36 def columns=(values) data.vectors = Daru::Index.coerce(values) end
compare_data_equality(other)
click to toggle source
Calls superclass method
Charty::TableAdapters::BaseAdapter#compare_data_equality
# File lib/charty/table_adapters/daru_adapter.rb, line 44 def compare_data_equality(other) case other when DaruAdapter data == other.data else super end end
index()
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 26 def index DaruIndex.new(data.index) end
Private Instance Methods
check_type(type, data, name)
click to toggle source
# File lib/charty/table_adapters/daru_adapter.rb, line 106 def check_type(type, data, name) return data if data.is_a?(type) raise TypeError, "#{name} must be a #{type}" end