def at *positions
      positions = preprocess_positions(*positions)
      validate_positions(*positions)
      if positions.is_a? Integer
        index_from_pos(positions)
      else
        Daru::CategoricalIndex.new positions.map(&method(:index_from_pos))
      end
    end
Takes positional values and returns subset of the self
capturing the categories at mentioned positions
@param positions [Array<Integer>] positional values
@return [object] index object
@example
idx = Daru::CategoricalIndex.new [:a, :b, :a, :b, :c]
idx.at 0, 1
# => #<Daru::CategoricalIndex(2): {a, b}>