Class DoubleColumn

All Implemented Interfaces:
Iterable<Double>, Comparator<Double>, NumericColumn<Double>, Column<Double>, NumberFillers<DoubleColumn>, NumberFilters, NumberMapFunctions, FilterSpec<Selection>, NumberFilterSpec<Selection>

public class DoubleColumn extends NumberColumn<DoubleColumn,Double> implements NumberFillers<DoubleColumn>
A column that contains double values
  • Field Details

    • data

      protected final it.unimi.dsi.fastutil.doubles.DoubleArrayList data
  • Constructor Details

    • DoubleColumn

      protected DoubleColumn(String name, it.unimi.dsi.fastutil.doubles.DoubleArrayList data)
    • DoubleColumn

      protected DoubleColumn(String name)
  • Method Details

    • valueIsMissing

      public static boolean valueIsMissing(double value)
    • getString

      public String getString(int row)
      Returns a string representation of the value at the given row.
      Specified by:
      getString in interface Column<Double>
      Overrides:
      getString in class NumberColumn<DoubleColumn,Double>
      Parameters:
      row - The index of the row.
      Returns:
      value as String
    • size

      public int size()
      Returns the number of elements in this column, including missing values
      Specified by:
      size in interface Column<Double>
      Specified by:
      size in interface NumberFilters
      Specified by:
      size in interface NumberMapFunctions
    • clear

      public void clear()
      Removes all elements TODO: Make this return this column
      Specified by:
      clear in interface Column<Double>
    • setMissing

      public DoubleColumn setMissing(int index)
      Sets the value at index i to the missing-value indicator for this column type, and return this column
      Specified by:
      setMissing in interface Column<Double>
    • create

      public static DoubleColumn create(String name, double... arr)
    • create

      public static DoubleColumn create(String name)
    • create

      public static DoubleColumn create(String name, float... arr)
    • create

      public static DoubleColumn create(String name, int... arr)
    • create

      public static DoubleColumn create(String name, long... arr)
    • create

      public static DoubleColumn create(String name, Collection<? extends Number> numberList)
    • create

      public static DoubleColumn create(String name, Number[] numbers)
    • create

      public static DoubleColumn create(String name, int initialSize)
    • create

      public static DoubleColumn create(String name, DoubleStream stream)
    • createCol

      public DoubleColumn createCol(String name, int initialSize)
      Specified by:
      createCol in class NumberColumn<DoubleColumn,Double>
    • createCol

      public DoubleColumn createCol(String name)
      Specified by:
      createCol in class NumberColumn<DoubleColumn,Double>
    • get

      public Double get(int index)
      Returns the value at the given zero-based index
      Specified by:
      get in interface Column<Double>
    • where

      public DoubleColumn where(Selection selection)
      Returns the subset of data in this column included in the given Selection
      Specified by:
      where in interface Column<Double>
      Specified by:
      where in interface NumericColumn<Double>
    • isNotIn

      public Selection isNotIn(double... doubles)
    • isIn

      public Selection isIn(double... doubles)
    • subset

      public DoubleColumn subset(int[] rows)
      Return a column of the same type containing just those elements whose indexes are included in the given array
      Specified by:
      subset in interface Column<Double>
      Overrides:
      subset in class AbstractColumn<DoubleColumn,Double>
    • unique

      public DoubleColumn unique()
      Returns a column of the same type containing only the unique values
      Specified by:
      unique in interface Column<Double>
      Returns:
      a Column
    • top

      public DoubleColumn top(int n)
      Returns the largest ("top") n values in the column TODO(lwhite): Consider whether this should exclude missing
      Specified by:
      top in class NumberColumn<DoubleColumn,Double>
      Parameters:
      n - The maximum number of records to return. The actual number will be smaller if n is greater than the number of observations in the column
      Returns:
      A list, possibly empty, of the largest observations
    • bottom

      public DoubleColumn bottom(int n)
      Returns the smallest ("bottom") n values in the column TODO(lwhite): Consider whether this should exclude missing
      Specified by:
      bottom in class NumberColumn<DoubleColumn,Double>
      Parameters:
      n - The maximum number of records to return. The actual number will be smaller if n is greater than the number of observations in the column
      Returns:
      A list, possibly empty, of the smallest n observations
    • lag

      public DoubleColumn lag(int n)
      Returns a column of the same type and size as the receiver, containing the receivers values offset by n.

      For example if you lag a column containing 2, 3, 4 by 1, you get a column containing NA, 2, 3

      Specified by:
      lag in interface Column<Double>
      Specified by:
      lag in interface NumericColumn<Double>
    • removeMissing

      public DoubleColumn removeMissing()
      Returns a copy of this column with the missing values removed
      Specified by:
      removeMissing in interface Column<Double>
    • append

      public DoubleColumn append(float f)
      Adds the given float to this column
    • append

      public DoubleColumn append(double d)
      Adds the given double to this column
    • append

      public DoubleColumn append(int i)
    • valueHash

      public int valueHash(int rowNumber)
      Returns an int suitable as a hash for the value in this column at the given index
      Specified by:
      valueHash in interface Column<Double>
    • equals

      public boolean equals(int rowNumber1, int rowNumber2)
      Returns true if the value in this column at rowNumber1 is equal to the value at rowNumber2
      Specified by:
      equals in interface Column<Double>
    • append

      public DoubleColumn append(Double val)
      Appends value to the bottom of this column and return this column
      Specified by:
      append in interface Column<Double>
    • append

      public DoubleColumn append(Number val)
    • copy

      public DoubleColumn copy()
      Returns a deep copy of the receiver
      Specified by:
      copy in interface Column<Double>
      Specified by:
      copy in interface NumericColumn<Double>
      Returns:
      a Column
    • iterator

      public Iterator<Double> iterator()
      Specified by:
      iterator in interface Iterable<Double>
    • asDoubleArray

      public double[] asDoubleArray()
      Description copied from interface: NumericColumn
      Specified by:
      asDoubleArray in interface NumberMapFunctions
      Specified by:
      asDoubleArray in interface NumericColumn<Double>
    • asObjectArray

      public Double[] asObjectArray()
      Returns an array of objects as appropriate for my type of column
      Specified by:
      asObjectArray in interface Column<Double>
    • compare

      public int compare(Double o1, Double o2)
      Specified by:
      compare in interface Comparator<Double>
    • set

      public DoubleColumn set(int i, Double val)
      Sets the value at index row to the given value and return this column
      Specified by:
      set in interface Column<Double>
    • set

      public DoubleColumn set(int i, double val)
    • set

      public DoubleColumn set(DoublePredicate condition, NumericColumn<?> other)
      Updates this column where values matching the selection are replaced with the corresponding value from the given column
    • set

      public Column<Double> set(int row, String stringValue, AbstractColumnParser<?> parser)
      Sets the value at row to the parsed value of the given String using the given parser and returns this column
      Specified by:
      set in interface Column<Double>
    • append

      public DoubleColumn append(Column<Double> column)
      Appends all the values in the argument to the bottom of this column and return this column
      Specified by:
      append in interface Column<Double>
    • append

      public DoubleColumn append(Column<Double> column, int row)
      Appends the value at the given row in the given column to the bottom of this column and return this column
      Specified by:
      append in interface Column<Double>
    • set

      public DoubleColumn set(int row, Column<Double> column, int sourceRow)
      Sets the value at row to the value at sourceRow in the given column and return this column
      Specified by:
      set in interface Column<Double>
    • filter

      public DoubleColumn filter(DoublePredicate test)
      Returns a new NumberColumn with only those rows satisfying the predicate
      Parameters:
      test - the predicate
      Returns:
      a new NumberColumn with only those rows satisfying the predicate
    • asBytes

      public byte[] asBytes(int rowNumber)
      Returns the contents of the cell at rowNumber as a byte[].
      Specified by:
      asBytes in interface Column<Double>
      Parameters:
      rowNumber - index of the row
      Returns:
      content as byte[]
    • asSet

      public Set<Double> asSet()
      Returns a Set containing all the unique values in this column
      Specified by:
      asSet in interface Column<Double>
    • countUnique

      public int countUnique()
      Returns the count of unique values in this column.
      Specified by:
      countUnique in interface Column<Double>
      Returns:
      unique values as int
    • getDouble

      public double getDouble(int row)
      Returns a double representation of the number at index
      Specified by:
      getDouble in interface NumberFilters
      Specified by:
      getDouble in interface NumberMapFunctions
      Specified by:
      getDouble in interface NumericColumn<Double>
    • isMissingValue

      public boolean isMissingValue(double value)
    • isMissing

      public boolean isMissing(int rowNumber)
      Returns true if the value at rowNumber is missing
      Specified by:
      isMissing in interface Column<Double>
      Specified by:
      isMissing in interface NumberMapFunctions
    • sortAscending

      public void sortAscending()
      Sorts my values in ascending order
      Specified by:
      sortAscending in interface Column<Double>
    • sortDescending

      public void sortDescending()
      Sorts my values in descending order
      Specified by:
      sortDescending in interface Column<Double>
    • appendMissing

      public DoubleColumn appendMissing()
      Appends a missing value appropriate to the column
      Specified by:
      appendMissing in interface Column<Double>
    • appendObj

      public DoubleColumn appendObj(Object obj)
      Appends the given value to the bottom of this column and return this column
      Specified by:
      appendObj in interface Column<Double>
    • appendCell

      public DoubleColumn appendCell(String value)
      Add one element to the bottom of this column and set its value to the parsed value of the given String. Parsing is type-specific
      Specified by:
      appendCell in interface Column<Double>
    • appendCell

      public DoubleColumn appendCell(String value, AbstractColumnParser<?> parser)
      Add one element to the bottom of this column and set its value to the parsed value of the given String, as performed by the given parser
      Specified by:
      appendCell in interface Column<Double>
    • getUnformattedString

      public String getUnformattedString(int row)
      Returns a String representation of the value at index r, without any formatting applied
      Specified by:
      getUnformattedString in interface Column<Double>
    • fillWith

      public DoubleColumn fillWith(it.unimi.dsi.fastutil.doubles.DoubleIterator iterator)
      Specified by:
      fillWith in interface NumberFillers<DoubleColumn>
    • fillWith

      public DoubleColumn fillWith(DoubleRangeIterable iterable)
      Specified by:
      fillWith in interface NumberFillers<DoubleColumn>
    • fillWith

      public DoubleColumn fillWith(DoubleSupplier supplier)
      Specified by:
      fillWith in interface NumberFillers<DoubleColumn>
    • fillWith

      public DoubleColumn fillWith(double d)
      Specified by:
      fillWith in interface NumberFillers<DoubleColumn>
    • asLongColumn

      public LongColumn asLongColumn()
      Returns a new LongColumn containing a value for each value in this column, truncating if necessary

      A narrowing primitive conversion such as this one may lose information about the overall magnitude of a numeric value and may also lose precision and range. Specifically, if the value is too small (a negative value of large magnitude or negative infinity), the result is the smallest representable value of type long.

      Similarly, if the value is too large (a positive value of large magnitude or positive infinity), the result is the largest representable value of type long.

      Despite the fact that overflow, underflow, or other loss of information may occur, a narrowing primitive conversion never results in a run-time exception.

      A missing value in the receiver is converted to a missing value in the result

      Specified by:
      asLongColumn in interface NumericColumn<Double>
    • asIntColumn

      public IntColumn asIntColumn()
      Returns a new IntColumn containing a value for each value in this column, truncating if necessary.

      A narrowing primitive conversion such as this one may lose information about the overall magnitude of a numeric value and may also lose precision and range. Specifically, if the value is too small (a negative value of large magnitude or negative infinity), the result is the smallest representable value of type int.

      Similarly, if the value is too large (a positive value of large magnitude or positive infinity), the result is the largest representable value of type int.

      Despite the fact that overflow, underflow, or other loss of information may occur, a narrowing primitive conversion never results in a run-time exception.

      A missing value in the receiver is converted to a missing value in the result

      Specified by:
      asIntColumn in interface NumericColumn<Double>
    • asShortColumn

      public ShortColumn asShortColumn()
      Returns a new ShortColumn containing a value for each value in this column, truncating if necessary.

      A narrowing primitive conversion such as this one may lose information about the overall magnitude of a numeric value and may also lose precision and range. Specifically, if the value is too small (a negative value of large magnitude or negative infinity), the result is the smallest representable value of type int.

      Similarly, if the value is too large (a positive value of large magnitude or positive infinity), the result is the largest representable value of type short.

      Despite the fact that overflow, underflow, or other loss of information may occur, a narrowing primitive conversion never results in a run-time exception.

      A missing value in the receiver is converted to a missing value in the result

      Specified by:
      asShortColumn in interface NumericColumn<Double>
    • asFloatColumn

      public FloatColumn asFloatColumn()
      Returns a new FloatColumn containing a value for each value in this column, truncating if necessary.

      A narrowing primitive conversion such as this one may lose information about the overall magnitude of a numeric value and may also lose precision and range. Specifically, if the value is too small (a negative value of large magnitude or negative infinity), the result is the smallest representable value of type float.

      Similarly, if the value is too large (a positive value of large magnitude or positive infinity), the result is the largest representable value of type float.

      Despite the fact that overflow, underflow, or other loss of information may occur, a narrowing primitive conversion never results in a run-time exception.

      A missing value in the receiver is converted to a missing value in the result

      Specified by:
      asFloatColumn in interface NumericColumn<Double>