red_amber 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.rubocop.yml +56 -22
 - data/.yardopts +2 -0
 - data/CHANGELOG.md +178 -0
 - data/Gemfile +1 -1
 - data/LICENSE +1 -1
 - data/README.md +29 -30
 - data/benchmark/basic.yml +7 -7
 - data/benchmark/combine.yml +3 -3
 - data/benchmark/dataframe.yml +15 -9
 - data/benchmark/group.yml +6 -6
 - data/benchmark/reshape.yml +6 -6
 - data/benchmark/vector.yml +6 -3
 - data/doc/DataFrame.md +32 -12
 - data/doc/DataFrame_Comparison.md +65 -0
 - data/doc/SubFrames.md +11 -0
 - data/doc/Vector.md +207 -1
 - data/doc/yard-templates/default/fulldoc/html/css/common.css +6 -0
 - data/lib/red_amber/data_frame.rb +454 -85
 - data/lib/red_amber/data_frame_combinable.rb +609 -115
 - data/lib/red_amber/data_frame_displayable.rb +313 -34
 - data/lib/red_amber/data_frame_indexable.rb +122 -19
 - data/lib/red_amber/data_frame_loadsave.rb +78 -10
 - data/lib/red_amber/data_frame_reshaping.rb +184 -14
 - data/lib/red_amber/data_frame_selectable.rb +623 -70
 - data/lib/red_amber/data_frame_variable_operation.rb +452 -35
 - data/lib/red_amber/group.rb +186 -22
 - data/lib/red_amber/helper.rb +74 -14
 - data/lib/red_amber/refinements.rb +26 -6
 - data/lib/red_amber/subframes.rb +1101 -0
 - data/lib/red_amber/vector.rb +362 -11
 - data/lib/red_amber/vector_aggregation.rb +312 -0
 - data/lib/red_amber/vector_binary_element_wise.rb +506 -0
 - data/lib/red_amber/vector_selectable.rb +265 -23
 - data/lib/red_amber/vector_unary_element_wise.rb +529 -0
 - data/lib/red_amber/vector_updatable.rb +278 -34
 - data/lib/red_amber/version.rb +2 -1
 - data/lib/red_amber.rb +13 -1
 - data/red_amber.gemspec +2 -2
 - metadata +13 -8
 - data/doc/image/dataframe/reshaping_DataFrames.png +0 -0
 - data/lib/red_amber/vector_functions.rb +0 -242
 
| 
         @@ -4,17 +4,114 @@ 
     | 
|
| 
       4 
4 
     | 
    
         
             
            # reference: https://arrow.apache.org/docs/cpp/compute.html
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            module RedAmber
         
     | 
| 
       7 
     | 
    
         
            -
              #  
     | 
| 
      
 7 
     | 
    
         
            +
              # Mix-in for class Vector
         
     | 
| 
       8 
8 
     | 
    
         
             
              # Functions to make up some data (especially missing) for new data.
         
     | 
| 
       9 
9 
     | 
    
         
             
              module VectorUpdatable
         
     | 
| 
       10 
10 
     | 
    
         
             
                # Add properties to Arrow::Array and Arrow::ChunkedArray
         
     | 
| 
       11 
11 
     | 
    
         
             
                using RefineArrayLike
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
                # Replace data
         
     | 
| 
       14 
     | 
    
         
            -
                # 
     | 
| 
       15 
     | 
    
         
            -
                #  
     | 
| 
       16 
     | 
    
         
            -
                #  
     | 
| 
       17 
     | 
    
         
            -
                # 
     | 
| 
      
 13 
     | 
    
         
            +
                # Replace data in self by position specifier and replacer.
         
     | 
| 
      
 14 
     | 
    
         
            +
                #
         
     | 
| 
      
 15 
     | 
    
         
            +
                # - Scalar value may be broadcasted.
         
     | 
| 
      
 16 
     | 
    
         
            +
                # - Returned value type may be automatically up-casted by replacer.
         
     | 
| 
      
 17 
     | 
    
         
            +
                #
         
     | 
| 
      
 18 
     | 
    
         
            +
                # @overload replace(booleans, replacer_by_scalar)
         
     | 
| 
      
 19 
     | 
    
         
            +
                #   Replace the value where true in boolean specifier to scalar replacer.
         
     | 
| 
      
 20 
     | 
    
         
            +
                #
         
     | 
| 
      
 21 
     | 
    
         
            +
                #   @param booleans [Array, Vector, Arrow::Array]
         
     | 
| 
      
 22 
     | 
    
         
            +
                #     boolean position specifier to specify the position to be replaced by true.
         
     | 
| 
      
 23 
     | 
    
         
            +
                #   @param replacer_by_scalar [Scalar]
         
     | 
| 
      
 24 
     | 
    
         
            +
                #     new data to replace for.
         
     | 
| 
      
 25 
     | 
    
         
            +
                #   @return [Vector]
         
     | 
| 
      
 26 
     | 
    
         
            +
                #     a new replaced Vector.
         
     | 
| 
      
 27 
     | 
    
         
            +
                #     If specifier has no true, returns self.
         
     | 
| 
      
 28 
     | 
    
         
            +
                #   @example Replace with boolean specifier and scalar replacer
         
     | 
| 
      
 29 
     | 
    
         
            +
                #     Vector.new([1, 2, 3]).replace([true, false, true], 0)
         
     | 
| 
      
 30 
     | 
    
         
            +
                #
         
     | 
| 
      
 31 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 32 
     | 
    
         
            +
                #     #<RedAmber::Vector(:uint8, size=3):0x000000000001ee10>
         
     | 
| 
      
 33 
     | 
    
         
            +
                #     [0, 2, 0]
         
     | 
| 
      
 34 
     | 
    
         
            +
                #
         
     | 
| 
      
 35 
     | 
    
         
            +
                #   @example Type of result is up-casted by replacer.
         
     | 
| 
      
 36 
     | 
    
         
            +
                #     ector.new([1, 2, 3]).replace([true, false, true], -1.0)
         
     | 
| 
      
 37 
     | 
    
         
            +
                #
         
     | 
| 
      
 38 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 39 
     | 
    
         
            +
                #     #<RedAmber::Vector(:double, size=3):0x0000000000025d78>
         
     | 
| 
      
 40 
     | 
    
         
            +
                #     [-1.0, 2.0, -1.0]
         
     | 
| 
      
 41 
     | 
    
         
            +
                #
         
     | 
| 
      
 42 
     | 
    
         
            +
                #   @example Position of nil in booleans is replaced with nil
         
     | 
| 
      
 43 
     | 
    
         
            +
                #     Vector.new([1, 2, 3]).replace([true, false, nil], -1)
         
     | 
| 
      
 44 
     | 
    
         
            +
                #
         
     | 
| 
      
 45 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 46 
     | 
    
         
            +
                #     #<RedAmber::Vector(:int8, size=3):0x00000000000304d0>
         
     | 
| 
      
 47 
     | 
    
         
            +
                #     [-1, 2, nil]
         
     | 
| 
      
 48 
     | 
    
         
            +
                #
         
     | 
| 
      
 49 
     | 
    
         
            +
                #   @example Replace 'NA' to nil
         
     | 
| 
      
 50 
     | 
    
         
            +
                #     vector = Vector.new(['A', 'B', 'NA'])
         
     | 
| 
      
 51 
     | 
    
         
            +
                #     vector.replace(vector == 'NA', nil)
         
     | 
| 
      
 52 
     | 
    
         
            +
                #
         
     | 
| 
      
 53 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 54 
     | 
    
         
            +
                #     #<RedAmber::Vector(:string, size=3):0x000000000000f8ac>
         
     | 
| 
      
 55 
     | 
    
         
            +
                #     ["A", "B", nil]
         
     | 
| 
      
 56 
     | 
    
         
            +
                #
         
     | 
| 
      
 57 
     | 
    
         
            +
                # @overload replace(indices, replacer_by_scalar)
         
     | 
| 
      
 58 
     | 
    
         
            +
                #   Replace the value at the index specifier to scalar replacer.
         
     | 
| 
      
 59 
     | 
    
         
            +
                #
         
     | 
| 
      
 60 
     | 
    
         
            +
                #   @param indices [Array, Vector, Arrow::Array]
         
     | 
| 
      
 61 
     | 
    
         
            +
                #     index specifier to specify the position to be replaced.
         
     | 
| 
      
 62 
     | 
    
         
            +
                #   @param replacer_by_scalar [Scalar]
         
     | 
| 
      
 63 
     | 
    
         
            +
                #     new data to replace for.
         
     | 
| 
      
 64 
     | 
    
         
            +
                #   @return [Vector]
         
     | 
| 
      
 65 
     | 
    
         
            +
                #     a new replaced Vector.
         
     | 
| 
      
 66 
     | 
    
         
            +
                #     If specifier is empty, returns self.
         
     | 
| 
      
 67 
     | 
    
         
            +
                #   @example Replace with index specifier and scalar replacer
         
     | 
| 
      
 68 
     | 
    
         
            +
                #     Vector.new([1, 2, 3]).replace([0, 2], 0)
         
     | 
| 
      
 69 
     | 
    
         
            +
                #
         
     | 
| 
      
 70 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 71 
     | 
    
         
            +
                #     #<RedAmber::Vector(:uint8, size=3):0x000000000000c15c>
         
     | 
| 
      
 72 
     | 
    
         
            +
                #     [0, 2, 0]
         
     | 
| 
      
 73 
     | 
    
         
            +
                #
         
     | 
| 
      
 74 
     | 
    
         
            +
                # @overload replace(booleans, replacer_array)
         
     | 
| 
      
 75 
     | 
    
         
            +
                #   Replace the value where true in boolean specifier to replacer array.
         
     | 
| 
      
 76 
     | 
    
         
            +
                #
         
     | 
| 
      
 77 
     | 
    
         
            +
                #   @param booleans [Array, Vector, Arrow::Array]
         
     | 
| 
      
 78 
     | 
    
         
            +
                #     boolean position specifier to specify the position to be replaced by true.
         
     | 
| 
      
 79 
     | 
    
         
            +
                #   @param replacer_array [Vector, Array, Arrow::Array]
         
     | 
| 
      
 80 
     | 
    
         
            +
                #     new data to replace for.
         
     | 
| 
      
 81 
     | 
    
         
            +
                #     The number of true in booleans must be equal to the length of replacer array.
         
     | 
| 
      
 82 
     | 
    
         
            +
                #   @return [Vector]
         
     | 
| 
      
 83 
     | 
    
         
            +
                #     a new replaced Vector.
         
     | 
| 
      
 84 
     | 
    
         
            +
                #     If specifier has no true, returns self.
         
     | 
| 
      
 85 
     | 
    
         
            +
                #   @example Replace with boolean specifier and replacer array
         
     | 
| 
      
 86 
     | 
    
         
            +
                #     vector = Vector.new([1, 2, 3])
         
     | 
| 
      
 87 
     | 
    
         
            +
                #     booleans = [true, false, true]
         
     | 
| 
      
 88 
     | 
    
         
            +
                #     replacer = [4, 5]
         
     | 
| 
      
 89 
     | 
    
         
            +
                #     vector.replace(booleans, replacer)
         
     | 
| 
      
 90 
     | 
    
         
            +
                #
         
     | 
| 
      
 91 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 92 
     | 
    
         
            +
                #     #<RedAmber::Vector(:uint8, size=3):0x000000000001ee10>
         
     | 
| 
      
 93 
     | 
    
         
            +
                #     [4, 2, 5]
         
     | 
| 
      
 94 
     | 
    
         
            +
                #
         
     | 
| 
      
 95 
     | 
    
         
            +
                # @overload replace(indices, replacer_array)
         
     | 
| 
      
 96 
     | 
    
         
            +
                #   Replace the value at the index specifier to replacer array.
         
     | 
| 
      
 97 
     | 
    
         
            +
                #
         
     | 
| 
      
 98 
     | 
    
         
            +
                #   @param indices [Array, Vector, Arrow::Array]
         
     | 
| 
      
 99 
     | 
    
         
            +
                #     index specifier to specify the position to be replaced.
         
     | 
| 
      
 100 
     | 
    
         
            +
                #   @param replacer_array [Vector, Array, Arrow::Array]
         
     | 
| 
      
 101 
     | 
    
         
            +
                #     new data to replace for.
         
     | 
| 
      
 102 
     | 
    
         
            +
                #     The length of index specifier must be equal to the length of replacer array.
         
     | 
| 
      
 103 
     | 
    
         
            +
                #   @return [Vector]
         
     | 
| 
      
 104 
     | 
    
         
            +
                #     a new replaced Vector.
         
     | 
| 
      
 105 
     | 
    
         
            +
                #     If specifier is empty, returns self.
         
     | 
| 
      
 106 
     | 
    
         
            +
                #   @example Replace with index specifier and replacer array
         
     | 
| 
      
 107 
     | 
    
         
            +
                #     vector = Vector.new([1, 2, 3])
         
     | 
| 
      
 108 
     | 
    
         
            +
                #     indices = [0, 2]
         
     | 
| 
      
 109 
     | 
    
         
            +
                #     replacer = [4, 5]
         
     | 
| 
      
 110 
     | 
    
         
            +
                #     vector.replace(indices, replacer)
         
     | 
| 
      
 111 
     | 
    
         
            +
                #
         
     | 
| 
      
 112 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 113 
     | 
    
         
            +
                #     #<RedAmber::Vector(:uint8, size=3):0x000000000001ee10>
         
     | 
| 
      
 114 
     | 
    
         
            +
                #     [4, 2, 5]
         
     | 
| 
       18 
115 
     | 
    
         
             
                #
         
     | 
| 
       19 
116 
     | 
    
         
             
                def replace(specifier, replacer)
         
     | 
| 
       20 
117 
     | 
    
         
             
                  vector = Vector.new(parse_args(Array(specifier), size))
         
     | 
| 
         @@ -37,7 +134,7 @@ module RedAmber 
     | 
|
| 
       37 
134 
     | 
    
         
             
                    in nil | [nil]
         
     | 
| 
       38 
135 
     | 
    
         
             
                      return replace_to_nil(booleans.data)
         
     | 
| 
       39 
136 
     | 
    
         
             
                    in Arrow::Array
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
      
 137 
     | 
    
         
            +
                      replacer
         
     | 
| 
       41 
138 
     | 
    
         
             
                    in Vector
         
     | 
| 
       42 
139 
     | 
    
         
             
                      replacer.data
         
     | 
| 
       43 
140 
     | 
    
         
             
                    in Array
         
     | 
| 
         @@ -52,10 +149,59 @@ module RedAmber 
     | 
|
| 
       52 
149 
     | 
    
         
             
                  replace_with(booleans.data, replacer_array)
         
     | 
| 
       53 
150 
     | 
    
         
             
                end
         
     | 
| 
       54 
151 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
                #  
     | 
| 
       56 
     | 
    
         
            -
                # 
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                #  
     | 
| 
      
 152 
     | 
    
         
            +
                # Choose values based on self.
         
     | 
| 
      
 153 
     | 
    
         
            +
                #
         
     | 
| 
      
 154 
     | 
    
         
            +
                # [Ternary element-wise function] Returns a Vector.
         
     | 
| 
      
 155 
     | 
    
         
            +
                # - Self must be a boolean Vector.
         
     | 
| 
      
 156 
     | 
    
         
            +
                # - `true_choice`, `false_choice` must be of the same type scalar / array / Vector.
         
     | 
| 
      
 157 
     | 
    
         
            +
                # - `nil` values in self will be promoted to the output.
         
     | 
| 
      
 158 
     | 
    
         
            +
                #
         
     | 
| 
      
 159 
     | 
    
         
            +
                # @overload if_else(true_choise, false_choise)
         
     | 
| 
      
 160 
     | 
    
         
            +
                #   replace with a scalar.
         
     | 
| 
      
 161 
     | 
    
         
            +
                #
         
     | 
| 
      
 162 
     | 
    
         
            +
                #   @param true_choice [scalar]
         
     | 
| 
      
 163 
     | 
    
         
            +
                #     a value to be replaced with true.
         
     | 
| 
      
 164 
     | 
    
         
            +
                #   @param false_choice [scalar]
         
     | 
| 
      
 165 
     | 
    
         
            +
                #     a value to be replaced with false.
         
     | 
| 
      
 166 
     | 
    
         
            +
                #   @return [Vector]
         
     | 
| 
      
 167 
     | 
    
         
            +
                #     replaced result.
         
     | 
| 
      
 168 
     | 
    
         
            +
                #   @example Replace with scalar choices
         
     | 
| 
      
 169 
     | 
    
         
            +
                #     Vector.new(true, true, false, nil, false).if_else(1, 2)
         
     | 
| 
      
 170 
     | 
    
         
            +
                #
         
     | 
| 
      
 171 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 172 
     | 
    
         
            +
                #     #<RedAmber::Vector(:uint8, size=5):0x000000000000c198>
         
     | 
| 
      
 173 
     | 
    
         
            +
                #     [1, 1, 2, nil, 2]
         
     | 
| 
      
 174 
     | 
    
         
            +
                #
         
     | 
| 
      
 175 
     | 
    
         
            +
                # @overload if_else(true_choise, false_choise)
         
     | 
| 
      
 176 
     | 
    
         
            +
                #   replace with a scalar.
         
     | 
| 
      
 177 
     | 
    
         
            +
                #
         
     | 
| 
      
 178 
     | 
    
         
            +
                #   @param true_choice [Vector, Array, Arrow::Array]
         
     | 
| 
      
 179 
     | 
    
         
            +
                #     values to be replaced with true.
         
     | 
| 
      
 180 
     | 
    
         
            +
                #     The size of true_choice must be same as self.
         
     | 
| 
      
 181 
     | 
    
         
            +
                #   @param false_choice [Vector, Array, Arrow::Array]
         
     | 
| 
      
 182 
     | 
    
         
            +
                #     values to be replaced with false.
         
     | 
| 
      
 183 
     | 
    
         
            +
                #     The size of false_choice must be same as self.
         
     | 
| 
      
 184 
     | 
    
         
            +
                #   @return [Vector]
         
     | 
| 
      
 185 
     | 
    
         
            +
                #     replaced result.
         
     | 
| 
      
 186 
     | 
    
         
            +
                #   @example Replace with Array choices
         
     | 
| 
      
 187 
     | 
    
         
            +
                #     boolean_vector = Vector.new(true, true, false, nil, false)
         
     | 
| 
      
 188 
     | 
    
         
            +
                #     true_choise = Vector.new([1.1, 2.2, 3.3, 4.4, 5.5])
         
     | 
| 
      
 189 
     | 
    
         
            +
                #     false_choise = -true_choise
         
     | 
| 
      
 190 
     | 
    
         
            +
                #     boolean_vector.if_else(true_choise, false_choise)
         
     | 
| 
      
 191 
     | 
    
         
            +
                #
         
     | 
| 
      
 192 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 193 
     | 
    
         
            +
                #     #<RedAmber::Vector(:double, size=5):0x000000000000cd28>
         
     | 
| 
      
 194 
     | 
    
         
            +
                #     [1.1, 2.2, -3.3, nil, -5.5]
         
     | 
| 
      
 195 
     | 
    
         
            +
                #
         
     | 
| 
      
 196 
     | 
    
         
            +
                #   @example Normalize negative indices to positive ones
         
     | 
| 
      
 197 
     | 
    
         
            +
                #     indices = Vector.new([1, -1, 3, -4])
         
     | 
| 
      
 198 
     | 
    
         
            +
                #     array_size = 10
         
     | 
| 
      
 199 
     | 
    
         
            +
                #     normalized_indices = (indices < 0).if_else(indices + array_size, indices)
         
     | 
| 
      
 200 
     | 
    
         
            +
                #
         
     | 
| 
      
 201 
     | 
    
         
            +
                #     # =>
         
     | 
| 
      
 202 
     | 
    
         
            +
                #     #<RedAmber::Vector(:int16, size=4):0x000000000000f85c>
         
     | 
| 
      
 203 
     | 
    
         
            +
                #     [1, 9, 3, 6]
         
     | 
| 
      
 204 
     | 
    
         
            +
                #
         
     | 
| 
       59 
205 
     | 
    
         
             
                def if_else(true_choice, false_choice)
         
     | 
| 
       60 
206 
     | 
    
         
             
                  true_choice = true_choice.data if true_choice.is_a? Vector
         
     | 
| 
       61 
207 
     | 
    
         
             
                  false_choice = false_choice.data if false_choice.is_a? Vector
         
     | 
| 
         @@ -65,21 +211,58 @@ module RedAmber 
     | 
|
| 
       65 
211 
     | 
    
         
             
                  Vector.create(datum.value)
         
     | 
| 
       66 
212 
     | 
    
         
             
                end
         
     | 
| 
       67 
213 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
                # same behavior as Ruby's invert
         
     | 
| 
      
 214 
     | 
    
         
            +
                # Another #invert which is same behavior as Ruby's invert.
         
     | 
| 
      
 215 
     | 
    
         
            +
                #
         
     | 
| 
       69 
216 
     | 
    
         
             
                # ![true, false, nil] #=> [false, true, true]
         
     | 
| 
      
 217 
     | 
    
         
            +
                # @return [Vector]
         
     | 
| 
      
 218 
     | 
    
         
            +
                #   follows Ruby's BasicObject#!'s behavior.
         
     | 
| 
      
 219 
     | 
    
         
            +
                # @example
         
     | 
| 
      
 220 
     | 
    
         
            +
                #   vector = Vector.new([true, true, false, nil])
         
     | 
| 
      
 221 
     | 
    
         
            +
                #
         
     | 
| 
      
 222 
     | 
    
         
            +
                #   # =>
         
     | 
| 
      
 223 
     | 
    
         
            +
                #   #<RedAmber::Vector(:boolean, size=4):0x000000000000fa8c>
         
     | 
| 
      
 224 
     | 
    
         
            +
                #   [true, true, false, nil]
         
     | 
| 
      
 225 
     | 
    
         
            +
                #
         
     | 
| 
      
 226 
     | 
    
         
            +
                #   # nil is converted to nil by Vector#invert.
         
     | 
| 
      
 227 
     | 
    
         
            +
                #   vector.invert
         
     | 
| 
      
 228 
     | 
    
         
            +
                #   # or
         
     | 
| 
      
 229 
     | 
    
         
            +
                #   !vector
         
     | 
| 
      
 230 
     | 
    
         
            +
                #
         
     | 
| 
      
 231 
     | 
    
         
            +
                #   #<RedAmber::Vector(:boolean, size=4):0x000000000000faa0>
         
     | 
| 
      
 232 
     | 
    
         
            +
                #   [false, false, true, nil]
         
     | 
| 
      
 233 
     | 
    
         
            +
                #
         
     | 
| 
      
 234 
     | 
    
         
            +
                #   # On the other hand,
         
     | 
| 
      
 235 
     | 
    
         
            +
                #   # Vector#primitive_invert follows Ruby's BasicObject#!'s behavior.
         
     | 
| 
      
 236 
     | 
    
         
            +
                #   vector.primitive_invert
         
     | 
| 
      
 237 
     | 
    
         
            +
                #
         
     | 
| 
      
 238 
     | 
    
         
            +
                #   # =>
         
     | 
| 
      
 239 
     | 
    
         
            +
                #   #<RedAmber::Vector(:boolean, size=4):0x000000000000fab4>
         
     | 
| 
      
 240 
     | 
    
         
            +
                #   [false, false, true, true]
         
     | 
| 
      
 241 
     | 
    
         
            +
                #
         
     | 
| 
       70 
242 
     | 
    
         
             
                def primitive_invert
         
     | 
| 
       71 
243 
     | 
    
         
             
                  raise VectorTypeError, "Not a boolean Vector: #{self}" unless boolean?
         
     | 
| 
       72 
244 
     | 
    
         | 
| 
       73 
245 
     | 
    
         
             
                  is_nil.if_else(false, self).invert
         
     | 
| 
       74 
246 
     | 
    
         
             
                end
         
     | 
| 
       75 
247 
     | 
    
         | 
| 
      
 248 
     | 
    
         
            +
                # Shift elements in self.
         
     | 
| 
      
 249 
     | 
    
         
            +
                #
         
     | 
| 
      
 250 
     | 
    
         
            +
                # @param amount [Integer]
         
     | 
| 
      
 251 
     | 
    
         
            +
                #   amount of shift. Positive value will shift right, negative will shift left.
         
     | 
| 
      
 252 
     | 
    
         
            +
                # @param fill [Object]
         
     | 
| 
      
 253 
     | 
    
         
            +
                #   complementary element to fill the new seat.
         
     | 
| 
      
 254 
     | 
    
         
            +
                # @return [Vector]
         
     | 
| 
      
 255 
     | 
    
         
            +
                #   shifted Vector.
         
     | 
| 
      
 256 
     | 
    
         
            +
                #
         
     | 
| 
       76 
257 
     | 
    
         
             
                def shift(amount = 1, fill: nil)
         
     | 
| 
       77 
     | 
    
         
            -
                  raise VectorArgumentError, 'Shift amount is too large' if amount.abs  
     | 
| 
      
 258 
     | 
    
         
            +
                  raise VectorArgumentError, 'Shift amount is too large' if amount.abs >= size
         
     | 
| 
       78 
259 
     | 
    
         | 
| 
       79 
260 
     | 
    
         
             
                  if amount.positive?
         
     | 
| 
       80 
     | 
    
         
            -
                     
     | 
| 
      
 261 
     | 
    
         
            +
                    filler = [fill] * amount
         
     | 
| 
      
 262 
     | 
    
         
            +
                    Vector.new(filler.concat(Array(self[0...-amount])))
         
     | 
| 
       81 
263 
     | 
    
         
             
                  elsif amount.negative?
         
     | 
| 
       82 
     | 
    
         
            -
                     
     | 
| 
      
 264 
     | 
    
         
            +
                    filler = [fill] * -amount
         
     | 
| 
      
 265 
     | 
    
         
            +
                    Vector.new(Array(self[-amount...]).concat(filler))
         
     | 
| 
       83 
266 
     | 
    
         
             
                  else # amount == 0
         
     | 
| 
       84 
267 
     | 
    
         
             
                    self
         
     | 
| 
       85 
268 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -87,13 +270,18 @@ module RedAmber 
     | 
|
| 
       87 
270 
     | 
    
         | 
| 
       88 
271 
     | 
    
         
             
                # Split string Vector and returns Array of columns.
         
     | 
| 
       89 
272 
     | 
    
         
             
                #
         
     | 
| 
       90 
     | 
    
         
            -
                # @param sep [nil, String, Regexp] 
     | 
| 
       91 
     | 
    
         
            -
                #    
     | 
| 
       92 
     | 
    
         
            -
                #    
     | 
| 
       93 
     | 
    
         
            -
                #    
     | 
| 
       94 
     | 
    
         
            -
                #  
     | 
| 
       95 
     | 
    
         
            -
                #  
     | 
| 
       96 
     | 
    
         
            -
                # @ 
     | 
| 
      
 273 
     | 
    
         
            +
                # @param sep [nil, String, Regexp]
         
     | 
| 
      
 274 
     | 
    
         
            +
                #   separator.
         
     | 
| 
      
 275 
     | 
    
         
            +
                #   If separator is nil (or no argeument given),
         
     | 
| 
      
 276 
     | 
    
         
            +
                #   the column will be splitted by Arrow's split function
         
     | 
| 
      
 277 
     | 
    
         
            +
                #   using any ASCII whitespace.
         
     | 
| 
      
 278 
     | 
    
         
            +
                #   Otherwise, sep will passed to String#split.
         
     | 
| 
      
 279 
     | 
    
         
            +
                # @param limit [Integer]
         
     | 
| 
      
 280 
     | 
    
         
            +
                #   maximum number to limit separation. Passed to String#split.
         
     | 
| 
      
 281 
     | 
    
         
            +
                # @return [Array<Vector>]
         
     | 
| 
      
 282 
     | 
    
         
            +
                #   an Array of Vectors.
         
     | 
| 
      
 283 
     | 
    
         
            +
                # @note nil will separated as nil's at same row.
         
     | 
| 
      
 284 
     | 
    
         
            +
                #   ex) `nil => [nil, nil]`
         
     | 
| 
       97 
285 
     | 
    
         
             
                #
         
     | 
| 
       98 
286 
     | 
    
         
             
                def split_to_columns(sep = nil, limit = 0)
         
     | 
| 
       99 
287 
     | 
    
         
             
                  l = split(sep, limit)
         
     | 
| 
         @@ -102,20 +290,25 @@ module RedAmber 
     | 
|
| 
       102 
290 
     | 
    
         | 
| 
       103 
291 
     | 
    
         
             
                # Split string Vector and flatten into rows.
         
     | 
| 
       104 
292 
     | 
    
         
             
                #
         
     | 
| 
       105 
     | 
    
         
            -
                # @param sep [nil, String, Regexp] 
     | 
| 
       106 
     | 
    
         
            -
                #    
     | 
| 
       107 
     | 
    
         
            -
                #    
     | 
| 
       108 
     | 
    
         
            -
                #    
     | 
| 
       109 
     | 
    
         
            -
                #  
     | 
| 
       110 
     | 
    
         
            -
                #  
     | 
| 
       111 
     | 
    
         
            -
                # @ 
     | 
| 
      
 293 
     | 
    
         
            +
                # @param sep [nil, String, Regexp]
         
     | 
| 
      
 294 
     | 
    
         
            +
                #   separater.
         
     | 
| 
      
 295 
     | 
    
         
            +
                #   If separator is nil (or no argeument given),
         
     | 
| 
      
 296 
     | 
    
         
            +
                #   the column will be splitted by Arrow's split function
         
     | 
| 
      
 297 
     | 
    
         
            +
                #   using any ASCII whitespace.
         
     | 
| 
      
 298 
     | 
    
         
            +
                #   Otherwise, sep will passed to String#split.
         
     | 
| 
      
 299 
     | 
    
         
            +
                # @param limit [Integer]
         
     | 
| 
      
 300 
     | 
    
         
            +
                #   maximum number to limit separation. Passed to String#split.
         
     | 
| 
      
 301 
     | 
    
         
            +
                # @return [Vector]
         
     | 
| 
      
 302 
     | 
    
         
            +
                #   a flatten Vector.
         
     | 
| 
      
 303 
     | 
    
         
            +
                # @note nil will separated as nil's at same row.
         
     | 
| 
      
 304 
     | 
    
         
            +
                #   ex) `nil => [nil, nil]`
         
     | 
| 
       112 
305 
     | 
    
         
             
                #
         
     | 
| 
       113 
306 
     | 
    
         
             
                def split_to_rows(sep = nil, limit = 0)
         
     | 
| 
       114 
307 
     | 
    
         
             
                  l = split(sep, limit)
         
     | 
| 
       115 
308 
     | 
    
         
             
                  l.list_flatten
         
     | 
| 
       116 
309 
     | 
    
         
             
                end
         
     | 
| 
       117 
310 
     | 
    
         | 
| 
       118 
     | 
    
         
            -
                #  
     | 
| 
      
 311 
     | 
    
         
            +
                # Return element size Array for list Vector.
         
     | 
| 
       119 
312 
     | 
    
         
             
                #
         
     | 
| 
       120 
313 
     | 
    
         
             
                # @api private
         
     | 
| 
       121 
314 
     | 
    
         
             
                #
         
     | 
| 
         @@ -179,8 +372,10 @@ module RedAmber 
     | 
|
| 
       179 
372 
     | 
    
         
             
                #
         
     | 
| 
       180 
373 
     | 
    
         
             
                # @param other [String, Vector]
         
     | 
| 
       181 
374 
     | 
    
         
             
                #   merger from right. It will be broadcasted if it is a scalar String.
         
     | 
| 
       182 
     | 
    
         
            -
                # @param sep [String] 
     | 
| 
       183 
     | 
    
         
            -
                # 
     | 
| 
      
 375 
     | 
    
         
            +
                # @param sep [String]
         
     | 
| 
      
 376 
     | 
    
         
            +
                #   separator.
         
     | 
| 
      
 377 
     | 
    
         
            +
                # @return [Vector]
         
     | 
| 
      
 378 
     | 
    
         
            +
                #   merged Vector
         
     | 
| 
       184 
379 
     | 
    
         
             
                #
         
     | 
| 
       185 
380 
     | 
    
         
             
                def merge(other, sep: ' ')
         
     | 
| 
       186 
381 
     | 
    
         
             
                  if empty? || !string?
         
     | 
| 
         @@ -207,6 +402,53 @@ module RedAmber 
     | 
|
| 
       207 
402 
     | 
    
         
             
                  Vector.create(datum.value)
         
     | 
| 
       208 
403 
     | 
    
         
             
                end
         
     | 
| 
       209 
404 
     | 
    
         | 
| 
      
 405 
     | 
    
         
            +
                # Concatenate other array-like to self.
         
     | 
| 
      
 406 
     | 
    
         
            +
                #
         
     | 
| 
      
 407 
     | 
    
         
            +
                # @param other [Vector, Array, Arrow::Array, Arrow::ChunkedArray]
         
     | 
| 
      
 408 
     | 
    
         
            +
                #   other array-like to concatenate.
         
     | 
| 
      
 409 
     | 
    
         
            +
                # @return [Vector]
         
     | 
| 
      
 410 
     | 
    
         
            +
                #   concatenated Vector.
         
     | 
| 
      
 411 
     | 
    
         
            +
                # @example Concatenate to string
         
     | 
| 
      
 412 
     | 
    
         
            +
                #   string_vector
         
     | 
| 
      
 413 
     | 
    
         
            +
                #
         
     | 
| 
      
 414 
     | 
    
         
            +
                #   # =>
         
     | 
| 
      
 415 
     | 
    
         
            +
                #   #<RedAmber::Vector(:string, size=2):0x00000000000037b4>
         
     | 
| 
      
 416 
     | 
    
         
            +
                #   ["A", "B"]
         
     | 
| 
      
 417 
     | 
    
         
            +
                #
         
     | 
| 
      
 418 
     | 
    
         
            +
                #   string_vector.concatenate([1, 2])
         
     | 
| 
      
 419 
     | 
    
         
            +
                #
         
     | 
| 
      
 420 
     | 
    
         
            +
                #   # =>
         
     | 
| 
      
 421 
     | 
    
         
            +
                #   #<RedAmber::Vector(:string, size=4):0x0000000000003818>
         
     | 
| 
      
 422 
     | 
    
         
            +
                #   ["A", "B", "1", "2"]
         
     | 
| 
      
 423 
     | 
    
         
            +
                #
         
     | 
| 
      
 424 
     | 
    
         
            +
                # @example Concatenate to integer
         
     | 
| 
      
 425 
     | 
    
         
            +
                #   integer_vector
         
     | 
| 
      
 426 
     | 
    
         
            +
                #
         
     | 
| 
      
 427 
     | 
    
         
            +
                #   # =>
         
     | 
| 
      
 428 
     | 
    
         
            +
                #   #<RedAmber::Vector(:uint8, size=2):0x000000000000382c>
         
     | 
| 
      
 429 
     | 
    
         
            +
                #   [1, 2]
         
     | 
| 
      
 430 
     | 
    
         
            +
                #
         
     | 
| 
      
 431 
     | 
    
         
            +
                #   integer_vector.concatenate(["A", "B"])
         
     | 
| 
      
 432 
     | 
    
         
            +
                #   # =>
         
     | 
| 
      
 433 
     | 
    
         
            +
                #   #<RedAmber::Vector(:uint8, size=4):0x0000000000003840>
         
     | 
| 
      
 434 
     | 
    
         
            +
                #   [1, 2, 65, 66]
         
     | 
| 
      
 435 
     | 
    
         
            +
                #
         
     | 
| 
      
 436 
     | 
    
         
            +
                # @since 0.4.0
         
     | 
| 
      
 437 
     | 
    
         
            +
                #
         
     | 
| 
      
 438 
     | 
    
         
            +
                def concatenate(other)
         
     | 
| 
      
 439 
     | 
    
         
            +
                  concatenated_array =
         
     | 
| 
      
 440 
     | 
    
         
            +
                    case other
         
     | 
| 
      
 441 
     | 
    
         
            +
                    when Vector
         
     | 
| 
      
 442 
     | 
    
         
            +
                      data + other.data
         
     | 
| 
      
 443 
     | 
    
         
            +
                    when Arrow::ChunkedArray
         
     | 
| 
      
 444 
     | 
    
         
            +
                      data + other.pack
         
     | 
| 
      
 445 
     | 
    
         
            +
                    else
         
     | 
| 
      
 446 
     | 
    
         
            +
                      data + other
         
     | 
| 
      
 447 
     | 
    
         
            +
                    end
         
     | 
| 
      
 448 
     | 
    
         
            +
                  Vector.create(concatenated_array)
         
     | 
| 
      
 449 
     | 
    
         
            +
                end
         
     | 
| 
      
 450 
     | 
    
         
            +
                alias_method :concat, :concatenate
         
     | 
| 
      
 451 
     | 
    
         
            +
             
     | 
| 
       210 
452 
     | 
    
         
             
                private
         
     | 
| 
       211 
453 
     | 
    
         | 
| 
       212 
454 
     | 
    
         
             
                # Replace elements selected with a boolean mask
         
     | 
| 
         @@ -222,7 +464,8 @@ module RedAmber 
     | 
|
| 
       222 
464 
     | 
    
         
             
                #   - `replacer.size` must be equal to `mask.count(true)`.
         
     | 
| 
       223 
465 
     | 
    
         
             
                #   - Types of self and replacer must be same
         
     | 
| 
       224 
466 
     | 
    
         
             
                #
         
     | 
| 
       225 
     | 
    
         
            -
                # @return [Vector] 
     | 
| 
      
 467 
     | 
    
         
            +
                # @return [Vector]
         
     | 
| 
      
 468 
     | 
    
         
            +
                #   replaced vector.
         
     | 
| 
       226 
469 
     | 
    
         
             
                #   Type of returned Vector is upcasted if needed.
         
     | 
| 
       227 
470 
     | 
    
         
             
                #
         
     | 
| 
       228 
471 
     | 
    
         
             
                def replace_with(boolean_mask, replacer)
         
     | 
| 
         @@ -241,7 +484,8 @@ module RedAmber 
     | 
|
| 
       241 
484 
     | 
    
         
             
                #   Boolean mask which indicates the position to be replaced.
         
     | 
| 
       242 
485 
     | 
    
         
             
                #   - Position with true will be replaced by nil
         
     | 
| 
       243 
486 
     | 
    
         
             
                #   - Position with nil will remain as nil.
         
     | 
| 
       244 
     | 
    
         
            -
                # @return [Vector] 
     | 
| 
      
 487 
     | 
    
         
            +
                # @return [Vector]
         
     | 
| 
      
 488 
     | 
    
         
            +
                #   replaced vector.
         
     | 
| 
       245 
489 
     | 
    
         
             
                #
         
     | 
| 
       246 
490 
     | 
    
         
             
                def replace_to_nil(boolean_mask)
         
     | 
| 
       247 
491 
     | 
    
         
             
                  nil_array = data.class.new([nil] * size) # Casted nil Array
         
     | 
    
        data/lib/red_amber/version.rb
    CHANGED
    
    
    
        data/lib/red_amber.rb
    CHANGED
    
    | 
         @@ -14,20 +14,32 @@ require_relative 'red_amber/data_frame_selectable' 
     | 
|
| 
       14 
14 
     | 
    
         
             
            require_relative 'red_amber/data_frame_variable_operation'
         
     | 
| 
       15 
15 
     | 
    
         
             
            require_relative 'red_amber/data_frame'
         
     | 
| 
       16 
16 
     | 
    
         
             
            require_relative 'red_amber/group'
         
     | 
| 
       17 
     | 
    
         
            -
            require_relative 'red_amber/ 
     | 
| 
      
 17 
     | 
    
         
            +
            require_relative 'red_amber/subframes'
         
     | 
| 
      
 18 
     | 
    
         
            +
            require_relative 'red_amber/vector_aggregation'
         
     | 
| 
      
 19 
     | 
    
         
            +
            require_relative 'red_amber/vector_binary_element_wise'
         
     | 
| 
      
 20 
     | 
    
         
            +
            require_relative 'red_amber/vector_unary_element_wise'
         
     | 
| 
       18 
21 
     | 
    
         
             
            require_relative 'red_amber/vector_updatable'
         
     | 
| 
       19 
22 
     | 
    
         
             
            require_relative 'red_amber/vector_selectable'
         
     | 
| 
       20 
23 
     | 
    
         
             
            require_relative 'red_amber/vector'
         
     | 
| 
       21 
24 
     | 
    
         
             
            require_relative 'red_amber/version'
         
     | 
| 
       22 
25 
     | 
    
         | 
| 
       23 
26 
     | 
    
         
             
            module RedAmber
         
     | 
| 
      
 27 
     | 
    
         
            +
              # Generic error
         
     | 
| 
       24 
28 
     | 
    
         
             
              class Error < StandardError; end
         
     | 
| 
       25 
29 
     | 
    
         | 
| 
      
 30 
     | 
    
         
            +
              # Argument error in DataFrame
         
     | 
| 
       26 
31 
     | 
    
         
             
              class DataFrameArgumentError < ArgumentError; end
         
     | 
| 
      
 32 
     | 
    
         
            +
              # Data type error in DataFrame
         
     | 
| 
       27 
33 
     | 
    
         
             
              class DataFrameTypeError < TypeError; end
         
     | 
| 
       28 
34 
     | 
    
         | 
| 
      
 35 
     | 
    
         
            +
              # Argument error in Vector
         
     | 
| 
       29 
36 
     | 
    
         
             
              class VectorArgumentError < ArgumentError; end
         
     | 
| 
      
 37 
     | 
    
         
            +
              # Data type error in DataFrame
         
     | 
| 
       30 
38 
     | 
    
         
             
              class VectorTypeError < TypeError; end
         
     | 
| 
       31 
39 
     | 
    
         | 
| 
      
 40 
     | 
    
         
            +
              # Argument error in Group
         
     | 
| 
       32 
41 
     | 
    
         
             
              class GroupArgumentError < ArgumentError; end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
              # Argument error in SubFrames
         
     | 
| 
      
 44 
     | 
    
         
            +
              class SubFramesArgumentError < ArgumentError; end
         
     | 
| 
       33 
45 
     | 
    
         
             
            end
         
     | 
    
        data/red_amber.gemspec
    CHANGED
    
    | 
         @@ -9,7 +9,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       9 
9 
     | 
    
         
             
              spec.email = ['heronshoes877@gmail.com']
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              spec.summary = 'Simple dataframe library for Ruby'
         
     | 
| 
       12 
     | 
    
         
            -
              spec.description = 'RedAmber is a simple dataframe library' \
         
     | 
| 
      
 12 
     | 
    
         
            +
              spec.description = 'RedAmber is a simple dataframe library ' \
         
     | 
| 
       13 
13 
     | 
    
         
             
                                 'inspired by Rover-df and powered by Red Arrow.'
         
     | 
| 
       14 
14 
     | 
    
         
             
              spec.homepage = 'https://github.com/heronshoes/red_amber'
         
     | 
| 
       15 
15 
     | 
    
         
             
              spec.license = 'MIT'
         
     | 
| 
         @@ -31,7 +31,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       31 
31 
     | 
    
         
             
              spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
         
     | 
| 
       32 
32 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
              spec.add_dependency 'red-arrow', '~>  
     | 
| 
      
 34 
     | 
    
         
            +
              spec.add_dependency 'red-arrow', '~> 11.0.0'
         
     | 
| 
       35 
35 
     | 
    
         | 
| 
       36 
36 
     | 
    
         
             
              # Development dependency has gone to the Gemfile (rubygems/bundler#7237)
         
     | 
| 
       37 
37 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: red_amber
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.4.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Hirokazu SUZUKI (heronshoes)
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-03-11 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: red-arrow
         
     | 
| 
         @@ -16,15 +16,15 @@ dependencies: 
     | 
|
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version:  
     | 
| 
      
 19 
     | 
    
         
            +
                    version: 11.0.0
         
     | 
| 
       20 
20 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
24 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       25 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version:  
     | 
| 
       27 
     | 
    
         
            -
            description: RedAmber is a simple dataframe  
     | 
| 
      
 26 
     | 
    
         
            +
                    version: 11.0.0
         
     | 
| 
      
 27 
     | 
    
         
            +
            description: RedAmber is a simple dataframe library inspired by Rover-df and powered
         
     | 
| 
       28 
28 
     | 
    
         
             
              by Red Arrow.
         
     | 
| 
       29 
29 
     | 
    
         
             
            email:
         
     | 
| 
       30 
30 
     | 
    
         
             
            - heronshoes877@gmail.com
         
     | 
| 
         @@ -54,6 +54,8 @@ files: 
     | 
|
| 
       54 
54 
     | 
    
         
             
            - benchmark/vector.yml
         
     | 
| 
       55 
55 
     | 
    
         
             
            - doc/CODE_OF_CONDUCT.md
         
     | 
| 
       56 
56 
     | 
    
         
             
            - doc/DataFrame.md
         
     | 
| 
      
 57 
     | 
    
         
            +
            - doc/DataFrame_Comparison.md
         
     | 
| 
      
 58 
     | 
    
         
            +
            - doc/SubFrames.md
         
     | 
| 
       57 
59 
     | 
    
         
             
            - doc/Vector.md
         
     | 
| 
       58 
60 
     | 
    
         
             
            - doc/image/arrow_table_new.png
         
     | 
| 
       59 
61 
     | 
    
         
             
            - doc/image/basic_verbs.png
         
     | 
| 
         @@ -66,7 +68,6 @@ files: 
     | 
|
| 
       66 
68 
     | 
    
         
             
            - doc/image/dataframe/remove.png
         
     | 
| 
       67 
69 
     | 
    
         
             
            - doc/image/dataframe/rename.png
         
     | 
| 
       68 
70 
     | 
    
         
             
            - doc/image/dataframe/rename_operation.png
         
     | 
| 
       69 
     | 
    
         
            -
            - doc/image/dataframe/reshaping_DataFrames.png
         
     | 
| 
       70 
71 
     | 
    
         
             
            - doc/image/dataframe/set_and_bind.png
         
     | 
| 
       71 
72 
     | 
    
         
             
            - doc/image/dataframe/slice.png
         
     | 
| 
       72 
73 
     | 
    
         
             
            - doc/image/dataframe/slice_operation.png
         
     | 
| 
         @@ -85,6 +86,7 @@ files: 
     | 
|
| 
       85 
86 
     | 
    
         
             
            - doc/image/vector/unary_element_wise.png
         
     | 
| 
       86 
87 
     | 
    
         
             
            - doc/tdr.md
         
     | 
| 
       87 
88 
     | 
    
         
             
            - doc/tdr_ja.md
         
     | 
| 
      
 89 
     | 
    
         
            +
            - doc/yard-templates/default/fulldoc/html/css/common.css
         
     | 
| 
       88 
90 
     | 
    
         
             
            - lib/red-amber.rb
         
     | 
| 
       89 
91 
     | 
    
         
             
            - lib/red_amber.rb
         
     | 
| 
       90 
92 
     | 
    
         
             
            - lib/red_amber/data_frame.rb
         
     | 
| 
         @@ -98,9 +100,12 @@ files: 
     | 
|
| 
       98 
100 
     | 
    
         
             
            - lib/red_amber/group.rb
         
     | 
| 
       99 
101 
     | 
    
         
             
            - lib/red_amber/helper.rb
         
     | 
| 
       100 
102 
     | 
    
         
             
            - lib/red_amber/refinements.rb
         
     | 
| 
      
 103 
     | 
    
         
            +
            - lib/red_amber/subframes.rb
         
     | 
| 
       101 
104 
     | 
    
         
             
            - lib/red_amber/vector.rb
         
     | 
| 
       102 
     | 
    
         
            -
            - lib/red_amber/ 
     | 
| 
      
 105 
     | 
    
         
            +
            - lib/red_amber/vector_aggregation.rb
         
     | 
| 
      
 106 
     | 
    
         
            +
            - lib/red_amber/vector_binary_element_wise.rb
         
     | 
| 
       103 
107 
     | 
    
         
             
            - lib/red_amber/vector_selectable.rb
         
     | 
| 
      
 108 
     | 
    
         
            +
            - lib/red_amber/vector_unary_element_wise.rb
         
     | 
| 
       104 
109 
     | 
    
         
             
            - lib/red_amber/vector_updatable.rb
         
     | 
| 
       105 
110 
     | 
    
         
             
            - lib/red_amber/version.rb
         
     | 
| 
       106 
111 
     | 
    
         
             
            - red_amber.gemspec
         
     | 
| 
         @@ -128,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       128 
133 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       129 
134 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       130 
135 
     | 
    
         
             
            requirements: []
         
     | 
| 
       131 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 136 
     | 
    
         
            +
            rubygems_version: 3.4.1
         
     | 
| 
       132 
137 
     | 
    
         
             
            signing_key:
         
     | 
| 
       133 
138 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       134 
139 
     | 
    
         
             
            summary: Simple dataframe library for Ruby
         
     | 
| 
         Binary file 
     |