Class: Daru::Accessors::ArrayWrapper

Inherits:
Object
  • Object
show all
Includes:
Statistics, Enumerable
Defined in:
lib/daru/accessors/array_wrapper.rb

Overview

Internal class for wrapping ruby array

Defined Under Namespace

Modules: Statistics

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Statistics

#average_deviation_population, #coefficient_of_variation, #count, #factors, #frequencies, #has_missing_data?, #kurtosis, #max, #mean, #median, #median_absolute_deviation, #min, #mode, #n_valid, #percentile, #product, #proportion, #proportions, #range, #ranked, #recode, #recode!, #skew, #standard_deviation_population, #standard_deviation_sample, #standard_error, #sum, #sum_of_squared_deviation, #sum_of_squares, #variance_population, #variance_sample

Constructor Details

#initialize(vector, caller) ⇒ ArrayWrapper

Returns a new instance of ArrayWrapper.



189
190
191
192
193
194
# File 'lib/daru/accessors/array_wrapper.rb', line 189

def initialize vector, caller
  @vector = vector
  @caller = caller

  set_size
end

Instance Attribute Details

#has_missing_dataObject (readonly)

Returns the value of attribute has_missing_data.



187
188
189
# File 'lib/daru/accessors/array_wrapper.rb', line 187

def has_missing_data
  @has_missing_data
end

#sizeObject

Returns the value of attribute size.



185
186
187
# File 'lib/daru/accessors/array_wrapper.rb', line 185

def size
  @size
end

#vectorObject (readonly)

Returns the value of attribute vector.



186
187
188
# File 'lib/daru/accessors/array_wrapper.rb', line 186

def vector
  @vector
end

Instance Method Details

#<<(element) ⇒ Object



219
220
221
222
# File 'lib/daru/accessors/array_wrapper.rb', line 219

def << element
  @vector << element
  set_size
end

#==(other) ⇒ Object



206
207
208
# File 'lib/daru/accessors/array_wrapper.rb', line 206

def == other
  @vector == other
end

#[](index) ⇒ Object



196
197
198
# File 'lib/daru/accessors/array_wrapper.rb', line 196

def [] index
  @vector[index]
end

#[]=(index, value) ⇒ Object



200
201
202
203
204
# File 'lib/daru/accessors/array_wrapper.rb', line 200

def []= index, value
  has_missing_data = true if value.nil?
  @vector[index] = value
  set_size
end

#coerce(dtype) ⇒ Object



236
237
238
239
240
241
242
243
244
245
246
247
# File 'lib/daru/accessors/array_wrapper.rb', line 236

def coerce dtype
  case
  when dtype == Array
    self
  when dtype == NMatrix
    Daru::Accessors::NMatrixWrapper.new @vector, @caller
  when dtype == MDArray
    raise NotImplementedError
  else
    raise ArgumentError, "Cant coerce to dtype #{dtype}"
  end
end

#delete_at(index) ⇒ Object



210
211
212
213
# File 'lib/daru/accessors/array_wrapper.rb', line 210

def delete_at index
  @vector.delete_at index
  set_size
end

#dupObject



232
233
234
# File 'lib/daru/accessors/array_wrapper.rb', line 232

def dup
  ArrayWrapper.new @vector.dup, @caller
end

#each(&block) ⇒ Object



177
178
179
# File 'lib/daru/accessors/array_wrapper.rb', line 177

def each(&block)
  @vector.each(&block)
end

#index(key) ⇒ Object



215
216
217
# File 'lib/daru/accessors/array_wrapper.rb', line 215

def index key
  @vector.index key
end

#map!(&block) ⇒ Object



181
182
183
# File 'lib/daru/accessors/array_wrapper.rb', line 181

def map!(&block)
  @vector.map!(&block)
end

#to_aObject



228
229
230
# File 'lib/daru/accessors/array_wrapper.rb', line 228

def to_a
  @vector
end

#uniqObject



224
225
226
# File 'lib/daru/accessors/array_wrapper.rb', line 224

def uniq
  @vector.uniq
end