Method: DDescriptive#split
- Defined in:
- lib/colt/double_descriptive.rb
#split(splitters) ⇒ Object
Splits (partitions) a list into sublists such that each sublist contains the elements with a given range. splitters= (a,b,c,…,y,z) defines the ranges [-inf,a), [a,b), [b,c), …, [y,z), [z,inf]. Examples:
data = (1,2,3,4,5,8,8,8,10,11).
splitters=(2,8) yields 3 bins: (1), (2,3,4,5) (8,8,8,10,11).
splitters=() yields 1 bin: (1,2,3,4,5,8,8,8,10,11).
splitters=(-5) yields 2 bins: (), (1,2,3,4,5,8,8,8,10,11).
splitters=(100) yields 2 bins: (1,2,3,4,5,8,8,8,10,11), ().
441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 |
# File 'lib/colt/double_descriptive.rb', line 441 def split(splitters) split = Java::CernColtListTdouble::DoubleArrayList.new(splitters.to_java(Java::double)) res = DoubleDescriptive.split(sorted_data, split) lists = res.to_a bins = Array.new lists.each do |list| list.trimToSize() bins << list.elements().to_a end bins end |