def merge other_df # rubocop:disable Metrics/AbcSize
      unless nrows == other_df.nrows
        raise ArgumentError,
          "Number of rows must be equal in this: #{nrows} and other: #{other_df.nrows}"
      end

      new_fields = (@vectors.to_a + other_df.vectors.to_a)
      new_fields = ArrayHelper.recode_repeated(new_fields)
      DataFrame.new({}, order: new_fields).tap do |df_new|
        (0...nrows).each do |i|
          df_new.add_row row[i].to_a + other_df.row[i].to_a
        end
        df_new.index = @index if @index == other_df.index
        df_new.update
      end
    end
def merge other_df # rubocop:disable Metrics/AbcSize
      unless nrows == other_df.nrows
        raise ArgumentError,
          "Number of rows must be equal in this: #{nrows} and other: #{other_df.nrows}"
      end

      new_fields = (@vectors.to_a + other_df.vectors.to_a)
      new_fields = ArrayHelper.recode_repeated(new_fields)
      DataFrame.new({}, order: new_fields).tap do |df_new|
        (0...nrows).each do |i|
          df_new.add_row row[i].to_a + other_df.row[i].to_a
        end
        df_new.index = @index if @index == other_df.index
        df_new.update
      end
    end
Merge vectors from two DataFrames. In case of name collision,
 the vectors names are changed to x_1, x_2 ....

 @return {Daru::DataFrame}