def at *positions
      # to be used to form index
      original_positions = positions
      positions = coerce_positions(*positions)
      validate_positions(*positions)

      if positions.is_a? Integer
        @data[positions]
      else
        values = positions.map { |pos| @data[pos] }
        Daru::Vector.new values, index: @index.at(*original_positions), dtype: dtype
      end
    end
Returns vector of values given positional values
@param positions [Array<object>] positional values
@return [object] vector
@example
dv = Daru::Vector.new 'a'..'e'
dv.at 0, 1, 2
# => #<Daru::Vector(3)>
#   0   a
#   1   b
#   2   c